0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 19
1

Найти все числа, начинающиеся с цифры, выбранной пользователем

09.11.2014, 14:51. Показов 2656. Ответов 3
Метки нет (Все метки)

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

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

код:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#include <math.h>
 
const int n=7;
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE,"Russian");
    int i,j, input;
    clock_t t;
    double A[n][n];
    ofstream out("result.txt");
    cout<<"1. Считать файл"<<endl;
    cout<<"2. Сгенерировать файл"<<endl;
    cin>> input;
    switch ( input ) {
        case 1:{
            t = clock();
            string cc;
            char c;
            ifstream fi("data.txt");
            cout << "Введите цифру от 0 до 9" << endl;
            cin >> c;
            while((fi >> cc))
                {
                    if(isdigit(cc.c_str()[0]) &&  cc.c_str()[0]==c ){
                        cout << cc << endl;
                        out << cc << endl;}
                    else if(cc.c_str()[0]=='-' &&  cc.c_str()[1]==c){
                        cout << cc << endl;
                        out << cc << endl;}
                    }
                    t = clock() - t;
                    cout << "Время выполнения: " << (double)t/CLOCKS_PER_SEC << endl;
                    cout << "Результат сохранен." << endl;
                    break;}
        case 2:{
            t = clock();
            srand((unsigned)time(NULL));
            for (i=0; i<n; i++)
                for (j=0; j<n; j++)
                A[i][j]=rand()% 20000 -100;
            FILE*f;
            f=fopen("data.txt", "w");
            for (i=0; i<n; i++)
                for (j=0; j<n; j++)
                fprintf(f,"%.0f\n",A[i][j]);
            fclose(f);
            cout<<"Файл сгенерирован и сохранен!"<<endl;
            string cc;
            char c;
            ifstream fi("data.txt");
            cout << "Введите цифру от 0 до 9" << endl;
            cin >> c;
            while((fi >> cc))
                {
                    if(isdigit(cc.c_str()[0]) &&  cc.c_str()[0]==c ){
                        cout << cc << endl;
                        out << cc << endl;}
                    else if(cc.c_str()[0]=='-' &&  cc.c_str()[1]==c){
                        cout << cc << endl;
                        out << cc << endl;}
                    }
                    t = clock() - t;
                    cout << "Время выполнения: " << (double)t/CLOCKS_PER_SEC << endl;
                    cout << "Результат сохранен." << endl;
                    break;}
    }
    out.close ();
    return 0;
}
 
[size="1"][color="grey"][I]Добавлено через 1 минуту[/I][/color][/size]
ifstream fi("data.txt");
            cout << "Введите цифру от 0 до 9" << endl;
            cin >> c;
            while((fi >> cc))
                {
                    if(isdigit(cc.c_str()[0]) &&  cc.c_str()[0]==c ){
                        cout << cc << endl;
                        out << cc << endl;}
                    else if(cc.c_str()[0]=='-' &&  cc.c_str()[1]==c){
                        cout << cc << endl;
                        out << cc << endl;}
                    }
                    t = clock() - t;
                    cout << "Время выполнения: " << (double)t/CLOCKS_PER_SEC << endl;
                    cout << "Результат сохранен." << endl;
                    break;}
        case 2:{
            t = clock();
            srand((unsigned)time(NULL));
            for (i=0; i<n; i++)
                for (j=0; j<n; j++)
                A[i][j]=rand()% 20000 -100;
            FILE*f;
            f=fopen("data.txt", "w");
            for (i=0; i<n; i++)
                for (j=0; j<n; j++)
                fprintf(f,"%.0f\n",A[i][j]);
            fclose(f);
            cout<<"Файл сгенерирован и сохранен!"<<endl;
            string cc;
            char c;
            ifstream fi("data.txt");
            cout << "Введите цифру от 0 до 9" << endl;
            cin >> c;
            while((fi >> cc))
                {
                    if(isdigit(cc.c_str()[0]) &&  cc.c_str()[0]==c ){
                        cout << cc << endl;
                        out << cc << endl;}
                    else if(cc.c_str()[0]=='-' &&  cc.c_str()[1]==c){
                        cout << cc << endl;
                        out << cc << endl;}
                    }
                    t = clock() - t;
                    cout << "Время выполнения: " << (double)t/CLOCKS_PER_SEC << endl;
                    cout << "Результат сохранен." << endl;
                    break;}
    }
    out.close ();
    return 0;
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2014, 14:51
Ответы с готовыми решениями:

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

Найти минимальный положительный элемент массива, все элементы, начинающиеся с цифры 1, заменить на обратные
найти минимальный положительный элемент массива, все элементы начинающиеся с цифры 1 заменить на их...

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

Определить позицию первой цифры числа, которая меньше цифры заданной пользователем
Добрый вечер! Прошу помощи. Есть задача - Дано пятизначное число, введенное пользователем и...

3
5224 / 3196 / 362
Регистрация: 12.12.2009
Сообщений: 8,101
Записей в блоге: 2
09.11.2014, 15:02 2
правильный ли он?
это можно узнать опытным путем.
мне кажется тут нет функций?
ага, нету
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 19
09.11.2014, 15:06  [ТС] 3
ну я запустила она работает) а как тогда с функциями переделать?
0
4814 / 2275 / 287
Регистрация: 01.03.2013
Сообщений: 5,936
Записей в блоге: 26
09.11.2014, 15:36 4
Очень просто - добавить в текст кода десяток ненужных и неиспользуемых функций, желательно подлиннее.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2014, 15:36
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru