Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
1

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

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

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста дописать программу, мне надо ее написать на 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2013, 16:06
Ответы с готовыми решениями:

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

Пожалуйста, доделайте задачу (до 23 декабря)
Здравствуйте, я совсем новичок в С++. На автомат в вузе дали задачу на темы, которые будут только в...

найти все трехзначные числа, у которых две цифры одинаковы через цикл while в Паскале пожалуйста
найти все трехзначные числа, у которых две цифры одинаковы через цикл while в Паскале пожалуйста

Получить все цифры заданого пользователем числа
Здравствуйте! Наверняка, это элементарнейшая задача, но все же прошу помощи: Нужно написать...

20
81 / 80 / 9
Регистрация: 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
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
81 / 80 / 9
Регистрация: 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
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
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 11:20 6
25 и 27 строки удали
1
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
81 / 80 / 9
Регистрация: 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
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
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 12:15 10
Вместо <string.h> используй <string>
оставь
using namespace std;

Добавлено через 11 минут
Понятно, что проблема с именами заголовочных файлах и пространствах имен.
1
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
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 14:23 12
Попробуй, вместо <fstream.h> используй <fstream>
оставь
using namespace std;
1
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
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 15:13 14
Попробуй,
вместо <string.h> используй <string>
вместо <iostream.h> используй <iostream>
оставь
using namespace std;
1
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
04.11.2013, 15:50  [ТС] 15
Цитата Сообщение от chedman Посмотреть сообщение
Попробуй,
вместо <string.h> используй <string>
вместо <iostream.h> используй <iostream>
оставь
using namespace std;
Все работает теперь) только вот окно открывается я ввожу цифру, а файл он не создает ща помужусь конечно может и придумаю чего
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 15:58 16
путь к файлу не правильный, замени "\\\\" на "\\"
1
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
04.11.2013, 16:00  [ТС] 17
Цитата Сообщение от chedman Посмотреть сообщение
путь к файлу не правильный, замени "\\\\" на "\\"
уже так пробывал все равно не хочет
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 16:02 18
Возможно у тебя нет прав на создание файла в корне на диске C:\ , попробуй другое место (папку).
1
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
04.11.2013, 16:07  [ТС] 19
Цитата Сообщение от chedman Посмотреть сообщение
Возможно у тебя нет прав на создание файла в корне на диске C:\ , попробуй другое место (папку).
Все создается, случайно сгенерированные числа в файл записываются а ответ нет, ответ только на экране выводиться
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
04.11.2013, 16:15 20
Попробуй этот фрагмент, путь свой пропиши
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 ///
    string ccc;
    char c;
    ifstream fi("D:\\data.txt");
 
    cout << "Input value 0-9" << endl;
    cin >> c;
 
    ofstream fo("D:\\outdata.txt");
    while((fi >> ccc))
    {
        if((isdigit(ccc.c_str()[0]) &&  ccc.c_str()[0]==c) || (ccc.c_str()[0]=='-' &&  ccc.c_str()[1]==c))
        {
            cout << ccc << endl;
            fo << ccc << endl;
        }
    }
1
04.11.2013, 16:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2013, 16:15
Помогаю со студенческими работами здесь

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

Найти все положительные четырехзначные числа у которых: все цифры разные, хотя бы две цифры одинаковы
Найти все положительные четырехзначные числа у которых: все цифры разные, хотя бы две цифры...

В диапозоне введенном пользователем разбить все числа (т. е. каждое по порядку) на цифры
В диапозоне введенном пользователем разбить все числа (т. е. каждое по порядку) на цифры...

Найти факториал минимальной цифры введеного пользователем числа
пользователь вводит натуральное число. найти факториал минимальной цифры введеного пользователем...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru