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

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

Войти
Регистрация
Восстановить пароль
 
 
саша 74
2 / 2 / 0
Регистрация: 10.02.2011
Сообщений: 48
#1

Сформировать текстовый файл, записав в него 20 случайных чисел - C++

27.03.2011, 06:58. Просмотров 1049. Ответов 18
Метки нет (Все метки)

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;
}
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
#include <fstream>
#include <iostream>
 
 
using namespace std;
int main()
{   ifstream fin;
  int n=21, i, z=0, el=0;
  int  a[21];
  int sum=0;
                fin.open("C:\\numbers2.txt ");
                for (i=1; i<n; i++)
                {
                        fin>>a[i];
                        cout<<("\n number")<<i<<" = "<<a[i];
                }
                cout<<endl;
                ofstream fout;
                    for(i=1; i!=21; i++)
                    while (sum+=a[z])
                    z++;
                   if (n-=z)   
                     el=a[z];
                  
                    
 
    cout<<("\n first odd number: ")<<a[z];
                cout<<"\n";
                fout.open("C:\\numbers3.txt ");
                for(int i=1;i<n;i++)
                fout<<a[i]+el<<'\n';
        fout.close ();
 
      return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2011, 06:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать текстовый файл, записав в него 20 случайных чисел (C++):

Формирование текстового файла, записав в него 20 случайных чисел от –10 до +10, по одному на строке - C++
Вот полностью задание : Следующее задание требуется решить с использованием текстовых файлов. Предусмотреть в программе: 1....

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

Сформировать массив, записав в него элементы с четными индексами двух массивов. - C++
Из массивов A и B сформировать массив C, записав в него элементы массивов A и B с четными индексами. Вычислить среднее арифметическое...

Сформировать одномерный массив В, записав в него сначала элементы массива А, имеющие четные индексы - C++
Сформировать одномерный массив В,записав в него сначала элементы массива А,имеющие четные индексы,потом-элементы с нечетными индексами.

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

Сформировать текстовый файл-таблицу возведения в степень 2 и 3, целых чисел от 1 до заданного с консоли числа - C++
Здравствуйте люди добрые, помогите решить простенькие задачки на С++, мне очень надо скоро их будет сдавать, помогите кто сможет! ...

18
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.03.2011, 07:52 #2
Цитата Сообщение от саша 74 Посмотреть сообщение
"C:\\numbers2.txt "
Зачем пробел в конце имени?

Добавлено через 30 секунд
Цитата Сообщение от саша 74 Посмотреть сообщение
int n=21; int mas[21];
Обе программы не должны компилироваться.

Добавлено через 25 секунд
Зачем массив из 21 значения, когда нужно 20?

Добавлено через 3 минуты
Цитата Сообщение от саша 74 Посмотреть сообщение
while (sum+=a[z]) z++;
Потенциально вечный цикл.
С выходом за границы массива, разумеется.
Потенциально с нулём итераций.

Добавлено через 1 минуту
Цитата Сообщение от саша 74 Посмотреть сообщение
for(i=1; i!=21; i++) while (sum+=a[z]) z++;
Это не сумма элементов, а не правильно реализованная сумма элементов умноженная на 20.

Добавлено через 1 минуту
Цитата Сообщение от саша 74 Посмотреть сообщение
if (n-=z) el=a[z];
Вообще не понял, что это.

Добавлено через 3 минуты
Цитата Сообщение от саша 74 Посмотреть сообщение
fout<<a[i]+el<<'\n'
вычтя из каждого числа сумму чисел файла. Вычитают при помощи знака минус.
0
саша 74
2 / 2 / 0
Регистрация: 10.02.2011
Сообщений: 48
27.03.2011, 08:22  [ТС] #3
если массив 20 указать то числа до 19 выводится будут .

как правильно в данном задании написать функцию "сумма чисел файла"
0
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
27.03.2011, 08:32 #4
индексация массивов начинается с 0
типа так можно:
C++
1
for (int i = 0; i < 20; i++) a[i];
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.03.2011, 08:34 #5
Цитата Сообщение от саша 74 Посмотреть сообщение
правильно в данном задании написать функцию "сумма чисел файла"
C++
1
2
for(int i=0; i <= 20; ++i)
      sum += a[i]);
Например.
1
саша 74
2 / 2 / 0
Регистрация: 10.02.2011
Сообщений: 48
28.03.2011, 16:27  [ТС] #6
Почему то все равно не получается выдаёт какую то белеберду.

Добавлено через 11 часов 46 минут
подскажите пожалуйста

Добавлено через 19 часов 45 минут
Некто не знает?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 16:36 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <fstream>
#include <iostream>
  
using namespace std;
int main()
{   ifstream fin;
  const int n=20;
  int  a[n];
  int sum=0;
  fin.open("C:\\numbers2.txt");
    for( int i=0; i<n; ++i)
   {
      fin>>a[i];
      sum += a[i];
       cout<<("\n number")<<i<<" = "<<a[i];
    }
           cout<<endl;
            ofstream fout("C:\\numbers3.txt");
            for(int i=0; i < 20; ++i)
                 fout << a[i] - sum;
     
      return 0;
}
Компилировать не собираюсь, но должно работать.
И удали пробелы в конце имени файла.
1
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
28.03.2011, 16:39 #8
Цитата Сообщение от саша 74 Посмотреть сообщение
2.Используя созданный выше файл как входной, сформировать
выходной файл , вычтя из каждого числа сумму чисел файла.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <fstream>
#include <iostream>
using namespace std;
 
int main(){
  const size_t size = 20;
  int a[size], sum = 0;
  ifstream f_in("C:\\numbers2.txt");
  ofstream f_out("C:\\numbers3.txt");
  for(int i = 0; i < size; ++i){
    f_in >> a[i];
    sum += a[i];
  }
  for(int i = 0; i < size; ++i)
    f_out << a[i] - sum << '\n';
  return 0;
}
Добавлено через 42 секунды

Не по теме:

Опередили..

1
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 16:40 #9
Зато, ты не поленился сам написать.) И форматирование соблюсти.)
А я лентяй, просто поудалял всё.
0
asics
28.03.2011, 16:46
  #10

Не по теме:

Цитата Сообщение от Deviaphan Посмотреть сообщение
Зато, ты не поленился сам написать.) И форматирование соблюсти.)
Люблю, понимаеш, что бы все было под линеечку, красиво

0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 16:47 #11
Цитата Сообщение от asics Посмотреть сообщение
Люблю, понимаеш, что бы все было под линеечку, красиво
Тогда, в строке 14 надо int заменить на size_t.))) Чтобы знаковый с беззнаковым не сравнивать.)
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
28.03.2011, 16:55 #12
Цитата Сообщение от Deviaphan Посмотреть сообщение
Тогда, в строке 14 надо int заменить на size_t.))) Чтобы знаковый с беззнаковым не сравнивать.)
Да ладно, кстате, GCC по этому поводу ворнинг не бросает, в отличие от MVS.
0
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
28.03.2011, 16:59 #13
Цитата Сообщение от asics Посмотреть сообщение
Да ладно, кстате, GCC по этому поводу ворнинг не бросает, в отличие от MVS.
а если поставить уровень повыше?
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
28.03.2011, 17:04 #14
Цитата Сообщение от fasked Посмотреть сообщение
а если поставить уровень повыше?
Извините, но не совсем понял что Вы имеете ввиду.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 17:06 #15
Цитата Сообщение от asics Посмотреть сообщение
что Вы имеете ввиду
Повысить строгость проверки ошибок. На самом деле это просто смертельная ошибка, не делайте так.)
0
28.03.2011, 17:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2011, 17:06
Привет! Вот еще темы с ответами:

Сформировать одномерный массив целых чисел, используя датчик случайных чисел - C++
1) Сформировать одномерный массив целых чисел, используя датчик случайных чи-сел. 2) Распечатать полученный массив. 3) Удалить элементы...

Сформировать одномерный массив целых чисел, используя датчик случайных чисел. - C++
Сформировать одномерный массив целых чисел, используя датчик случайных чисел. Удалить 5 последних элементов массива. Добавить в...

Сформировать одномерный массив целых чисел, используя датчик случайных чисел - C++
Сформировать одномерный массив целых чисел, используя датчик случайных чисел.Распечатать полученный массив. Удалить 5 первых элементов...

Сформировать одномерный массив целых чисел, используя датчик случайных чисел - C++
1)Сформировать одномерный массив целых чисел, используя датчик случайных чисел. 2)Распечатать полученный массив. 3)Перевернуть массив...


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

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

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