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

Сформировать текстовый файл - C++

Восстановить пароль Регистрация
 
саша 74
2 / 2 / 0
Регистрация: 10.02.2011
Сообщений: 48
23.02.2011, 14:42     Сформировать текстовый файл #1
подскажите где ошибка:

Вот задание:
Сформировать текстовый файл, записав в него 20 слу-
чайных чисел от –10 до +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
#include <fstream>
#include <iostream>
#include <time.h>
using namespace std;
int main()
{ 
 ofstream fout;
 
 int n=21;
 int mas[21];
 fout.open("C:\\numbers2.txt ");
 srand((unsigned int)time(0));
 
 for(int i=1;i<n;i++)
{
 mas[i]=10-rand()%21;
 fout<<mas[i]<<'\n';
 cout<<("\n number ")<<i<<" = "<<mas[i];
                }
                cout<<endl;
 
 fout.close ();
 return 0;
}

Здесь все нормально файл создается, вот вторая часть задания:

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

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
#include <stdio.h>
#include <conio.h>
#include <fstream>
#include <iostream>
#include <time.h>
#include<math.h>
using namespace std;
int main()
{   ifstream fin;
  int n=21, i, z=0, el=0;
        int  a[21];
 
                fin.open("C:\\numbers2.txt ");
                for (i=0; i<n; i++)
                {
                        fin>>a[i];
                        cout<<("\n number")<<i<<" = "<<a[i];
                }
                cout<<endl;
                                ofstream fout;
                 while ((!(a[z]%2) && (z<=n)))
                        z++;
                if (z<n)
                        el=a[z];
 
cout<<("\n min number : ")<<a[z];
cout<<"\n \n";
                fout.open("C:\\numbers3.txt ");
                for(int i=0;i<n;i++)
                fout<<a[i]+el<<'\n';
        fout.close ();
 
      return 0;
}

Находит число только не самое минимальное ,в чем ошибка подскажите ?:
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2011, 14:42     Сформировать текстовый файл
Посмотрите здесь:

C++ Сформировать текстовый файл-таблицу возведения в степень 2 и 3, целых чисел от 1 до заданного с консоли числа
C++ Сформировать текстовый файл, записав в него 20 случайных чисел
Текстовый файл UTF-8 сохранить как текстовый файл ANSI C++
Сформировать текстовый файл, содержащий только числа C++
Сформировать текстовый файл – таблицу умножения для целых чисел от 1 до заданного с консоли числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
саша 74
2 / 2 / 0
Регистрация: 10.02.2011
Сообщений: 48
24.02.2011, 21:08  [ТС]     Сформировать текстовый файл #2
подскажите где ошибка во второй части :Находит число только не самое минимальное?
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
24.02.2011, 21:20     Сформировать текстовый файл #3
Цитата Сообщение от саша 74 Посмотреть сообщение
cout<<("\n min number : ")<<a[z];
А так?
C++
1
cout<<("\n min number : ")<<el;
саша 74
2 / 2 / 0
Регистрация: 10.02.2011
Сообщений: 48
25.02.2011, 20:32  [ТС]     Сформировать текстовый файл #4
не разницы нет

Добавлено через 1 час 3 минуты
здесь же и el и a[z] одно и тоже
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
25.02.2011, 23:43     Сформировать текстовый файл #5
Цитата Сообщение от саша 74 Посмотреть сообщение
здесь же и el и a[z] одно и тоже
Как раз и есть. У постоянно будет выводится последний елемент массива.

Добавлено через 58 минут
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
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
 
int main(void)
{
    int arr[15];
    int i=0,el;
    fstream file("D:\\input.txt");
    if(!file)
    {
        cout<<"File not found!!!";
        return 0;
    }
    cout<<"input file content -> ";
    while(file)
    {
        file>>arr[i];
        cout<<arr[i]<<"  ";
        i++;
    }
    file.close();
    for(i=0; i<15; i++)
    {
        if(arr[i]%2)
        {
            el=arr[i];
             break;
        }
    }
    cout<<endl;
    ofstream out("D:\\output.txt");
    if(!out)
    {
        cout<<"Can not create file";
        return 1;
    }
    cout<<endl<<"output file created"<<endl;
    for(i=0; i<15; i++)
    {
        out<<arr[i]+el<<endl;
    }
    out<<endl<<"el="<<el;
    out.close();
    system("pause");
    return 0;
}
Yandex
Объявления
25.02.2011, 23:43     Сформировать текстовый файл
Ответ Создать тему
Опции темы

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