Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
#1

Пожалуйста доделайте задачу (в массиве найти все числа,начинающихся с цифры выбранной пользователем) - C++

03.11.2013, 16:06. Просмотров 797. Ответов 20
Метки нет (Все метки)

Помогите пожалуйста дописать программу, мне надо ее написать на Visual C++ 6.0
Вот задача В массиве целых чисел,расположенном в файле(кол-во чисел в фале произв-ое) найти все числа,начинающихся с цифры выбранной пользователем.Числа сильно различаются по величине(по кол-ву цифр в их написании).Предусмотреть ввод исходных данных из файла и генерацию этого файла с помощью генератора псевдослучайных чисел.Результат также сохранить в файле и вывести на экран

Вот я сделал, файл забивается случайными числами
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream.h>
const int n=3;
  int i,j;
  double A[n][n];
void main()
{
    srand((unsigned)time(NULL));
    for (i=0; i<n; i++)
      for (j=0; j<n; j++)
          A[i][j]=rand()% 20000 -100;
      FILE*f;
      char fname[]="C:\\\\data.txt\0";
      f=fopen(fname, "w");
      for (i=0; i<n; i++)
          for (j=0; j<n; j++)
      fprintf(f,"%.0f\n",A[i][j]);
      fclose(f);
      cout<<"File is saved to disk C"<<endl;
}
Спасибо заранее

Добавлено через 55 минут
up!

Добавлено через 17 минут
Пожааалуйста, помогите
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2013, 16:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пожалуйста доделайте задачу (в массиве найти все числа,начинающихся с цифры выбранной пользователем) (C++):

Найти все числа, начинающиеся с цифры, выбранной пользователем - C++
Объясните код) и правильный ли он? мне кажется тут нет функций? хотя они нужны по заданию задание: В массиве целых чисел,...

Программа, которая выводит на экран все цифры введенного пользователем числа через пробел в прямом порядке - C++
Нужна программа, которая выводит на экран все цифры введенного пользователем числа через пробел в прямом порядке. Я уже делал, чтоб...

Сохранить все цифры числа в отсортированном массиве - C++
Примерное задание на моей контрольной работе Помогите плиз не завалить)) Ввести натуральное число. Сохранить все его цифры: а) в...

Вывести сумму первой и третьей цифры и произведение второй и четвертой цифры числа, заданного пользователем - C++
Пользователь вводит 4-значное число - программа выводит сумму первой и третьей цифры и произведение второй и четвертой цифры.

Найти все четырехзначные числа, у которых все цифры различны - C++
Найти все четырехзначные числа, у которых все цифры различны.

Найти все четырехзначные числа, у которых все цифры различны - C++
4)Найти все четырехзначные числа, у которых все цифры различны.

20
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 09:38 #2
[CPP]"C:\\\\data.txt\0"/CPP]
замени на
C++
1
"C:\\data.txt\0"
возможно после инклудов нужна строка
C++
1
using namespace std;
1
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
04.11.2013, 10:05  [ТС] #3
Цитата Сообщение от chedman Посмотреть сообщение
[CPP]"C:\\\\data.txt\0"/CPP]
замени на
C++
1
"C:\\data.txt\0"
возможно после инклудов нужна строка
C++
1
using namespace std;
Моя часть программы работает) мне надо теперь сделать следующее: найти числа, которые начинаются с цифры выбранным пользователем
0
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 10:47 #4
Странно, пишете "В массиве целых чисел,расположенном в файле", а используйте тип double.

Добавлено через 13 минут
За спасибо в репутацию, вот фрагменты кода, решающий вашу задачу
C++
1
2
#include <fstream>
#include <string>
. . .
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    ///
    string ccc;
    char c;
    ifstream fi("C:\\data.txt");
 
    cout << "Input value 0-9" << endl;
    cin >> c;
 
    while((fi >> ccc))
    {
        if(isdigit(ccc.c_str()[0]) &&  ccc.c_str()[0]==c )
            cout << ccc << endl;
        else if(ccc.c_str()[0]=='-' &&  ccc.c_str()[1]==c)
            cout << ccc << endl;
    }
1
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
04.11.2013, 11:17  [ТС] #5
Цитата Сообщение от chedman Посмотреть сообщение
Странно, пишете "В массиве целых чисел,расположенном в файле", а используйте тип double.

Добавлено через 13 минут
За спасибо в репутацию, вот фрагменты кода, решающий вашу задачу
C++
1
2
#include <fstream>
#include <string>
. . .
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    ///
    string ccc;
    char c;
    ifstream fi("C:\\data.txt");
 
    cout << "Input value 0-9" << endl;
    cin >> c;
 
    while((fi >> ccc))
    {
        if(isdigit(ccc.c_str()[0]) &&  ccc.c_str()[0]==c )
            cout << ccc << endl;
        else if(ccc.c_str()[0]=='-' &&  ccc.c_str()[1]==c)
            cout << ccc << endl;
    }
Тоесть вот так должно быть?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream.h>
#include <fstream>
#include <string.h>
 
const int n=3;
  int i,j;
  double A[n][n];
void main()
{
    srand((unsigned)time(NULL));
    for (i=0; i<n; i++)
      for (j=0; j<n; j++)
          A[i][j]=rand()% 20000 -100;
      FILE*f;
      char fname[]="C:\\\\data.txt\0";
      f=fopen(fname, "w");
      for (i=0; i<n; i++)
          for (j=0; j<n; j++)
      fprintf(f,"%.0f\n",A[i][j]);
      fclose(f);
      cout<<"File is saved to disk C"<<endl;
}
 
{  
    string ccc;
    char c;
    ifstream fi("C:\\data.txt");
 
    cout << "Input value 0-9" << endl;
    cin >> c;
 
    while((fi >> ccc))
    {
        if(isdigit(ccc.c_str()[0]) &&  ccc.c_str()[0]==c )
            cout << ccc << endl;
        else if(ccc.c_str()[0]=='-' &&  ccc.c_str()[1]==c)
            cout << ccc << endl;
    }
}
0
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 11:20 #6
25 и 27 строки удали
1
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
04.11.2013, 11:33  [ТС] #7
Цитата Сообщение от chedman Посмотреть сообщение
25 и 27 строки удали
Удалил, до этого была одна ошибка, щас 10)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream.h>
#include <fstream>
#include <string.h>
 
const int n=3;
  int i,j;
  double A[n][n];
void main()
{
    srand((unsigned)time(NULL));
    for (i=0; i<n; i++)
      for (j=0; j<n; j++)
          A[i][j]=rand()% 20000 -100;
      FILE*f;
      char fname[]="C:\\\\data.txt\0";
      f=fopen(fname, "w");
      for (i=0; i<n; i++)
          for (j=0; j<n; j++)
      fprintf(f,"%.0f\n",A[i][j]);
      fclose(f);
      cout<<"File is saved to disk C"<<endl;
 
 
    
    string ccc;
    char c;
    ifstream fi("C:\\data.txt");
 
    cout << "Input value 0-9" << endl;
    cin >> c;
 
    while((fi >> ccc))
    {
        if(isdigit(ccc.c_str()[0]) &&  ccc.c_str()[0]==c )
            cout << ccc << endl;
        else if(ccc.c_str()[0]=='-' &&  ccc.c_str()[1]==c)
            cout << ccc << endl;
    }
    }
И сами ошибки
Compiling...
Cpp4.cpp
C:\Users\Teacher\Desktop\Êóðñà÷\Cpp4.cpp(28) : error C2065: 'string' : undeclared identifier
C:\Users\Teacher\Desktop\Êóðñà÷\Cpp4.cpp(28) : error C2146: syntax error : missing ';' before identifier 'ccc'
C:\Users\Teacher\Desktop\Êóðñà÷\Cpp4.cpp(28) : error C2065: 'ccc' : undeclared identifier
C:\Users\Teacher\Desktop\Êóðñà÷\Cpp4.cpp(30) : error C2065: 'ifstream' : undeclared identifier
C:\Users\Teacher\Desktop\Êóðñà÷\Cpp4.cpp(30) : error C2146: syntax error : missing ';' before identifier 'fi'
C:\Users\Teacher\Desktop\Êóðñà÷\Cpp4.cpp(30) : error C2065: 'fi' : undeclared identifier
C:\Users\Teacher\Desktop\Êóðñà÷\Cpp4.cpp(37) : error C2228: left of '.c_str' must have class/struct/union type
C:\Users\Teacher\Desktop\Êóðñà÷\Cpp4.cpp(37) : error C2228: left of '.c_str' must have class/struct/union type
C:\Users\Teacher\Desktop\Êóðñà÷\Cpp4.cpp(39) : error C2228: left of '.c_str' must have class/struct/union type
C:\Users\Teacher\Desktop\Êóðñà÷\Cpp4.cpp(39) : error C2228: left of '.c_str' must have class/struct/union type
Error executing cl.exe.

Cpp4.exe - 10 error(s), 0 warning(s)
0
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 11:46 #8
У меня другой компилятор, т.е. другая реализация языка Си++, у меня работает.
Попробуй заменить
C++
1
#include <fstream>
на
C++
1
#include <fstream.h>
И добавь после инклудов
C++
1
using namespace std;
1
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
04.11.2013, 11:50  [ТС] #9
Цитата Сообщение от chedman Посмотреть сообщение
У меня другой компилятор, т.е. другая реализация языка Си++, у меня работает.
Попробуй заменить
C++
1
#include <fstream>
на
C++
1
#include <fstream.h>
И добавь после инклудов
C++
1
using namespace std;
Если пишешь
C++
1
using namespace std;
то выходит 9 ошибок, без него 8

Compiling...
Cpp4.cpp
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(30) : error C2065: 'string' : undeclared identifier
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(30) : error C2146: syntax error : missing ';' before identifier 'ccc'
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(30) : error C2065: 'ccc' : undeclared identifier
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(39) : error C2065: 'isdigit' : undeclared identifier
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(39) : error C2228: left of '.c_str' must have class/struct/union type
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(39) : error C2228: left of '.c_str' must have class/struct/union type
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(41) : error C2228: left of '.c_str' must have class/struct/union type
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(41) : error C2228: left of '.c_str' must have class/struct/union type
Error executing cl.exe.

Cpp4.exe - 8 error(s), 0 warning(s)
0
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 12:15 #10
Вместо <string.h> используй <string>
оставь
using namespace std;

Добавлено через 11 минут
Понятно, что проблема с именами заголовочных файлах и пространствах имен.
1
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
04.11.2013, 12:53  [ТС] #11
Цитата Сообщение от chedman Посмотреть сообщение
Вместо <string.h> используй <string>
оставь
using namespace std;

Добавлено через 11 минут
Понятно, что проблема с именами заголовочных файлах и пространствах имен.
Compiling...
Cpp4.cpp
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(31) : error C2872: 'ifstream' : ambiguous symbol
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(36) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptab
le conversion)
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(36) : fatal error C1903: unable to recover from previous error(s); stopping compilation
Error executing cl.exe.

Cpp4.exe - 3 error(s), 0 warning(s)
0
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 14:23 #12
Попробуй, вместо <fstream.h> используй <fstream>
оставь
using namespace std;
1
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
04.11.2013, 15:05  [ТС] #13
Цитата Сообщение от chedman Посмотреть сообщение
Попробуй, вместо <fstream.h> используй <fstream>
оставь
using namespace std;
2 ошибки)
Compiling...
Cpp4.cpp
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(39) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptab
le conversion)
C:\Users\Teacher\Desktop\Курсач\Cpp4.cpp(41) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptab
le conversion)
Error executing cl.exe.

Cpp4.exe - 2 error(s), 0 warning(s)
0
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 15:13 #14
Попробуй,
вместо <string.h> используй <string>
вместо <iostream.h> используй <iostream>
оставь
using namespace std;
1
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
04.11.2013, 15:50  [ТС] #15
Цитата Сообщение от chedman Посмотреть сообщение
Попробуй,
вместо <string.h> используй <string>
вместо <iostream.h> используй <iostream>
оставь
using namespace std;
Все работает теперь) только вот окно открывается я ввожу цифру, а файл он не создает ща помужусь конечно может и придумаю чего
0
04.11.2013, 15:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 15:50
Привет! Вот еще темы с ответами:

Найти все трехзначные числа, в которых все цифры различны. - C++
Помогите, пожалуйста, решить задачу в С++. Найти все трехзначные числа, удовлетворяющие условию: все цифры различны.

Нужно найти максимальные и минимальные числа в массиве, причём кол-во массивов задаётся пользователем - C++
#include &lt;iostream.h&gt; int main () { int a, n; cin&gt;&gt;n; for (int i=0; i&lt;n;i++) cin &gt;&gt; a; for...

Найти все натуральные числа от промежутка от 0 до 200. Проверить задачу - C++
Найти все натуральные числа из промежутка от 1 до 200, у которых сумма делителей равна S (S вводить с клавиатуры). Что-то попытался,...

Дано натуральное число n (n <= 9999). Учитывая все четыре цифры числа, определить, правильно, что оно содержит: все разные цифры - C++
Плиз срочно надо=) для Microsoft Visual Studio 2010 Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.