Форум программистов, компьютерный форум CyberForum.ru

Задача на массив и поиск числа - C++

Восстановить пароль Регистрация
 
fReekufa
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 39
16.10.2013, 12:21     Задача на массив и поиск числа #1
Помогите пожалуйста с следующей задачей
В массиве целых чисел,расположенном в файле(кол-во чисел в фале произв-ое) найти все числа,начинающихся с цифры выбранной пользователем.Числа сильно различаются по величине(по кол-ву цифр в их написании).Предусмотреть ввод исходных данных из файла и генерацию этого файла с помощью генератора псевдослучайных чисел.Результат также сохранить в файле и вывести на экран

Добавлено через 12 часов 22 минуты
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;
}
Вот что есть у меня, помогите доделать пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 12:21     Задача на массив и поиск числа
Посмотрите здесь:

C++ задача на тему Поиск.
C++ задача записать в массив отрицательные элементы матрицы в массив и вывести их
C++ Задача на массив и указатели.(массив из случайных чисел)
C++ Задача на поиск цифр
Задача на поиск числа среди введеных C++
Задача на поиск максимума C++
C++ задача сорт и поиск бульбашка
C++ Поиск в матрице, задача
C++ Задача на поиск 2х наибольших чисел
C++ Задача на поиск минимального\максимального числа
Задача на поиск луж в матрице C++
Задача: массив, фильтр, выбор среднего числа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,993
16.10.2013, 14:15     Задача на массив и поиск числа #2

Не по теме:

с тебя мне на пиво))


вот, как всегда комменты не пишу, разбирайся)
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
132
133
134
135
136
137
138
139
140
141
142
143
144
//by kot
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <iomanip>
#include <fstream>
 
using namespace std;
 
int mod(int x,int y)
{
    int s=1;
    for(int i=1;i<=y;i++)
    s*=x;
return s;
}
void setFile(int sizeX,int sizeY)
{
cout<<"Created file \"text.txt\""<<endl;
ofstream file;
file.open("text.txt");
int* *b=new int*[sizeY];
 
    for (int y=0;y<sizeY;y++)
    {
    int* a=new int[sizeX];
        for(int x=0;x<sizeX;x++)
        {
        a[x]=1+rand()% 20000;
        }
    b[y]=&a[0];
    }
 
    for (int y=0;y<sizeY;y++)
    {
        for(int x=0;x<sizeX;x++)
        file<<setw(5)<<*(b[y]+x)<<" ";
    file<<"\n";
    }
    cout<<endl;
    file.close();
}
 
 
void readFile(int* b[],int sizeY, int sizeX)
{
ifstream file;
file.open("text.txt");
cout<<endl;
cout<<endl;
        for(int y=0;y<sizeY;y++)
        {
            int* a=new int[sizeX];
            for(int x=0;x<sizeX;x++)
            {
                file>>a[x];
            }
        b[y]=&a[0];
        }
    for (int y=0;y<sizeY;y++)
    {
        for(int x=0;x<sizeX;x++)
        cout<<setw(6)<<*(b[y]+x)<<" ";
    cout<<endl;
    }
}
 
void find(int* b[],int sizeX,int sizeY,int value)
{
cout<<"valie is :"<<value<<endl;
int c=0;
    for (int y=0;y<sizeY;y++)
    {
        for(int x=0;x<sizeX;x++)
        cout<<setw(6)<<*(b[y]+x)<<" ";
    cout<<endl;
    }
cout<<"\n\n";
    for (int y=0;y<sizeY;y++)
    {
        for(int x=0;x<sizeX;x++)
        {
            for (int counter=1;counter<=9;counter++)
                if (((*(b[y]+x))/(mod(10,counter)))==value)
                {
 
                c++;
                }
        }
    }
 
    if (c==0)
    cout<<"Sorry , but value = "<<value<<" haven't result :-("<<endl;
cout<<"number of answers: "<<c<<endl;
int *arrayValue=new int[c];
c=0;
    for (int y=0;y<sizeY;y++)
    {
        for(int x=0;x<sizeX;x++)
        {
            for (int counter=1;counter<=9;counter++)
                if (((*(b[y]+x))/(mod(10,counter)))==value)
                {
                cout<< *(b[y]+x)<<" \n";
                arrayValue[c]=*(b[y]+x);
                c++;
                }
        }
    }
 
ofstream file2;
file2.open("result.txt");
cout<<"Created file:\"result.txt\""<<endl;
    for (int y=0;y<c;y++)
    {
    file2<<arrayValue[y]<<" ";
    }
 
}
 
 
int main()
{
srand(time(0));
int sizeX,sizeY,value;
cout<<"Enter size x:";
cin>>sizeX;
cout<<"Enter size Y:";
cin>>sizeY;
int* *b=new int*[sizeY];
 
cout<<"\nfunction setFile:";
setFile(sizeX,sizeY);
cout<<"\nfunction read";
readFile(b,sizeY, sizeX);
 
cout<<"\Please enter find value:";
cin>>value;
cout<<"\nfunction find:\n";
find(b,sizeX,sizeY,value);
 
delete[]b;
return 0;
}
fjay69
 Аватар для fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
16.10.2013, 15:23     Задача на массив и поиск числа #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
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <ctime>
 
int main(int argc, char* argv[])
{
    srand(time(NULL));
    int select,tempint;
    std::ofstream outFile;
    std::ifstream inpFile;
    char digit,temp[10];
        
    std::cout<<"Select operation:\n"
    <<"1 - Read from file\n"
    <<"2 - Generate random\n";
    std::cin>>select;
    
    switch (select)
    {
    case 1:
    {
        inpFile.open(argv[1]);
        break;
    }
    case 2:
    {
        outFile.open(argv[1]);        
 
        if (outFile.fail())          
        {
            rename(tmpnam(NULL),argv[1]);
            outFile.open(argv[1]);      
        }
          
        int quant;            
        std::cout<<"Kolichestvo chisel:\n";
        std::cin>>quant;
        for (int i=0;i<quant;++i)
        {
            int num1=rand();
            outFile << num1 <<" "; 
        }
        outFile.close();
        inpFile.open(argv[1]);
        break;
    }    
    }
    std::cout<<"Enter digit:\n";
    std::cin>>digit;
    
    std::cout<<"Save result into:\n"
    <<"1 - Screen\n"
    <<"2 - File\n";
    std::cin>>select;
    switch (select)
    {
    case 1:
    {
        while(inpFile>>tempint)
        {
            sprintf(temp,"%d",tempint);
            if(temp[0]==digit) std::cout<<temp<<" ";
        } 
        break;       
    }
    case 2:
    {
        outFile.open(argv[2]);      
        while(inpFile>>tempint)
        {
            sprintf(temp,"%d",tempint);
            if(temp[0]==digit) outFile<<temp<<" ";
        }
        outFile.close();
        break;
    }
    }
        
    return 0;
}
В качестве аргументов программа принимает входящий и исходящий файлы. Например
Код
project1 "D:\input.txt" "D:\output.txt"
pause
Yandex
Объявления
16.10.2013, 15:23     Задача на массив и поиск числа
Ответ Создать тему
Опции темы

Текущее время: 01:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru