Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/40: Рейтинг темы: голосов - 40, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 10.02.2011
Сообщений: 48
1

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

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

Author24 — интернет-сервис помощи студентам
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2011, 06:58
Ответы с готовыми решениями:

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

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

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

Записать в текстовый файл 20 случайных чисел в заданном диапазоне
. Напишите программу, которая создает текстовый файл и записывает в него 20 случайных чисел,...

18
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 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
2 / 2 / 0
Регистрация: 10.02.2011
Сообщений: 48
27.03.2011, 08:22  [ТС] 3
если массив 20 указать то числа до 19 выводится будут .

как правильно в данном задании написать функцию "сумма чисел файла"
0
374 / 321 / 32
Регистрация: 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
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 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
2 / 2 / 0
Регистрация: 10.02.2011
Сообщений: 48
28.03.2011, 16:27  [ТС] 6
Почему то все равно не получается выдаёт какую то белеберду.

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

Добавлено через 19 часов 45 минут
Некто не знает?
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 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
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 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
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 16:40 9
Зато, ты не поленился сам написать.) И форматирование соблюсти.)
А я лентяй, просто поудалял всё.
0
asics
28.03.2011, 16:46
  #10

Не по теме:

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

0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 16:47 11
Цитата Сообщение от asics Посмотреть сообщение
Люблю, понимаеш, что бы все было под линеечку, красиво
Тогда, в строке 14 надо int заменить на size_t.))) Чтобы знаковый с беззнаковым не сравнивать.)
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
28.03.2011, 16:55 12
Цитата Сообщение от Deviaphan Посмотреть сообщение
Тогда, в строке 14 надо int заменить на size_t.))) Чтобы знаковый с беззнаковым не сравнивать.)
Да ладно, кстате, GCC по этому поводу ворнинг не бросает, в отличие от MVS.
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
28.03.2011, 16:59 13
Цитата Сообщение от asics Посмотреть сообщение
Да ладно, кстате, GCC по этому поводу ворнинг не бросает, в отличие от MVS.
а если поставить уровень повыше?
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
28.03.2011, 17:04 14
Цитата Сообщение от fasked Посмотреть сообщение
а если поставить уровень повыше?
Извините, но не совсем понял что Вы имеете ввиду.
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 17:06 15
Цитата Сообщение от asics Посмотреть сообщение
что Вы имеете ввиду
Повысить строгость проверки ошибок. На самом деле это просто смертельная ошибка, не делайте так.)
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
28.03.2011, 17:06 16
Цитата Сообщение от asics Посмотреть сообщение
Извините, но не совсем понял что Вы имеете ввиду.
Уровень предупреждений Warning Options. Я стараюсь ставить всегда Wall
1
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 17:09 17
На самом деле это не просто знаковый и беззнаковый, но 32-битный знаковый и (потенциально)64-битный беззнаковый. Лучше не мешать.

Добавлено через 2 минуты
Цитата Сообщение от fasked Посмотреть сообщение
Я стараюсь ставить всегда Wall
Ну это уже изврат.) На больших проектах нереально с ним. Я хэдэр сделал, он только действительно важные ворнинги подключает, чтобы не утонуть в предупреждениях левых.)))
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
28.03.2011, 17:12 18
Цитата Сообщение от Deviaphan Посмотреть сообщение
На больших проектах нереально с ним. Я хэдэр сделал, он только действительно важные ворнинги подключает, чтобы не утонуть в предупреждениях левых
Ну я и не имел в виду крупные проекты, а только так сказать "форумные", для крупных проектов есть статические анализаторы и просто прямые руки (по крайне мере должны быть).
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 17:17 19
Цитата Сообщение от fasked Посмотреть сообщение
так сказать "форумные"
Оч согласен. Особенно при изучении (множественного)наследования полезно. Сразу в косяки носом тыкает.
0
28.03.2011, 17:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2011, 17:17
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru