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

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

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

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

16.10.2013, 12:21. Просмотров 333. Ответов 2
Метки нет (Все метки)

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

Добавлено через 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++
Вводим числа k,l,m - среди этих чисел вводятся два одинаковых, а третье является отличным от них. Необходимо переменной n присвоить...

Задача: массив, фильтр, выбор среднего числа - C++
Добрый день. Помогите пожалуйста решить задачу: дается массив, в нем рост игроков (20 шт) в см. надо найти кол-во игроков с ростом...

Задача на массив и указатели.(массив из случайных чисел) - C++
Найти абсолютное значение,которое чаще остальных встречается в массиве. #include&lt;stdio.h&gt; #include&lt;time.h&gt; #include&lt;stdlib.h&gt; ...

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

задача на тему Поиск. - C++
Дана матрица A. Произвести поиск элемента (последовательности элементов) по нечетным строкам матрицы. Помогите пожалуйста новичку!!!

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

Задача на поиск максимума - C++
Задача с (acm.timus.ru) Вот условия Рассмотрим последовательность чисел ai, i = 0, 1, 2, …, удовлетворяющих следующим условиям: a0 =...

Задача на поиск луж в матрице - C++
Всем доброго дня. Есть задача, который день бьюсь, не могу придумать алгоритм. &quot;Consider a matrix of integers MxN, where each value...

Задача на поиск 2х наибольших чисел - C++
Попалась задачка с ныне мне не встречавшейся переменной tmp. Единственное, что я нашла в интернете, так это то, что tmp создают для...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,996
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
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
Ответ Создать тему
Опции темы

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