Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
1766 / 443 / 45
Регистрация: 09.04.2009
Сообщений: 2,599

Cреднее арифметическое чисел в файле txt.

26.05.2009, 20:03. Показов 6990. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проясните пожалуйста, что не так.
Нужно написать программу, которая вычисляет среднее арифметическое чисел, находящихся в файле A:\numbers.txt и результат помещает снова в этот файл.
Результат трудов.
/
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
/Srednee arifm
#include<string.h>
#include<stdio.h>
#include<conio.h>
#define FNAME "C:\Wnumbers.txt"//imaj faila
void main()
{
char fname[80]=FNAME;
FILE *out;//text.fail
float sum=0;//summa chisel
float sred;//srednee arifm.
int i=0;//kol-vo chisel
int g;//chislo
printf("\nSrednee arifmet");
printf("\nchisel v faile. %s",fname);
//otkr. fail  v reshime zapisi (w) texta (t)
if ((out = fopen(fname,"wt"))==NULL)
printf("\nOshibka pri otkrytii faila");
getch();
return;
while
 (!feof(out));
 fscanf(out,"%i",&i);
 sum+=g;
 fclose(out);//zakrit fail
 sred=sum/i;
 fprintf(out,"%i\n",sred);
printf("\nwsego chisel:%i",i);
printf("\nsumma:%i\n",sum);
printf("\nSred.arif:%i\n",sred);
getch();
}
Файл C:Wnumbers.txt я создал на диске С:\.
Нажимаешь Run, выводит эти строки Srednee arifmet chisel v faile. C:Wnumbers.txt,
и дальше не идёт. Что не так?
Компилятор ругается на эту строку “while (!feof(in));”, пишет Unreachable code, как его понимать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.05.2009, 20:03
Ответы с готовыми решениями:

Cреднее арифметическое чисел, лежащих ниже главной диагонали
Задача должна находить среднее арифметическое чисел лежащих ниже главной диагонали #include &quot;stdafx.h&quot; #include...

Напишите программу, которая вычисляет среднее арифметическое чисел, находящихся в файле numbers.txt
Ребят, есть условие и решение задачи, объясните пожалуйста комментариями ее решения, очень нужно. Заранее огромное спасибо! Задача ...

Напишите программу, которая вычисляет среднее арифметическое чисел, находящихся в файле D:\numbers.txt
Напишите программу, которая вычисляет среднее арифметическое чисел, находящихся в файле D:\numbers.txt.

7
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
26.05.2009, 20:21
детально не вникал, но, следуя здравому смыслу, попытался исправить куски бредятины.

C++
1
2
3
4
5
6
7
8
9
#include<string.h>
#include<stdio.h>
#include<conio.h>
#define FNAME "C:\\Wnumbers.txt"/*imaj faila*/
void main(){char fname[80]=FNAME;FILE *out;/*text.fail*/float sum=0;/*summa chisel */float sred;/*srednee arifm. */
int i=0;/*kol-vo chisel*/int g=0;/*chislo */printf("\nSrednee arifmet");printf("\nchisel v faile. %s",fname);
/*otkr. fail  v reshime zapisi (w) texta (t)*/if ((out = fopen(fname,"wt"))==NULL)printf("\nOshibka pri otkrytii faila");
getch();int n=1;while(!feof(out)){fscanf(out,"%i",&i);sum+=g;   n++;}fclose(out);/*zakrit fail*/sred=(float)sum/n;
fprintf(out,"%i\n",sred);printf("\nwsego chisel:%i",i);printf("\nsumma:%i\n",sum);printf("\nSred.arif:%i\n",sred);getch();}
1
1766 / 443 / 45
Регистрация: 09.04.2009
Сообщений: 2,599
26.05.2009, 23:08  [ТС]
Спасибо за ответ.
Нажимаешь Run, по-прежнему выводит только эти строки Srednee arifmet chisel v faile. C:Wnumbers.txt, и дальше не идёт. Зависает, на Enter не реагирует. Что не так?
Содержимое файла стирается, но запись в файл не делается.
0
 Аватар для RetiF
9 / 9 / 1
Регистрация: 21.12.2008
Сообщений: 43
27.05.2009, 02:38
Вы производите запись в файл, после того, как закрыли его. Также, перепутаны счётчик чисел и их сумма. В общем, вот подредактированный вариант Вашей программы:

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 <stdio.h>
 
main()
{
FILE *out;
float sum=0, sred, i=0, g=0;
 
out = fopen("result.txt","a+"); // "a+" - режим чтения и записи, содержимое файла не стирается
 
while(!feof(out)) {
                   fscanf(out,"%f",&i);
                   sum=sum+i; g++;
                  }
  
 sred=sum/g;
 
 fprintf(out,"\n\n%f",sred);
 
 fclose(out);
 
 printf("Check your result.txt");
 
 getchar();
}
Естественно, уже должен существовать файл result.txt, содержащий исходные числа
1
1766 / 443 / 45
Регистрация: 09.04.2009
Сообщений: 2,599
27.05.2009, 11: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
25
26
27
28
29
30
31
32
33
//Srednee arifm
#include<string.h>
#include<stdio.h>
#include<conio.h>
#define FNAME "Wnumbers.txt"//imaj faila
void main()
{
char fname[80]=FNAME;
FILE *out;//text.fail
float sum=0;//summa chisel
float sred;//srednee arifm.
float i=0;//kol-vo chisel
float g=0;//chislo
printf("\nSrednee arifmet");
printf("\nchisel v faile. %s",fname);
//otkr. fail  v reshime zapisi i chtenija "a+"
out = fopen("Wnumbers.txt","a+");
printf("\nOshibka pri otkrytii faila");
getch();
while(!feof(out));
 {
 fscanf(out,"%f",&i);
 sum=sum+i;
 g++;
 }
 sred=sum/g;
 fprintf(out,"\n\n%f\n",sred);
fclose(out);//zakrit fail
printf("\nwsego chisel:%f",i);
printf("\nsumma:%f\n",sum);
printf("\nSred.arif:%f\n",sred);
getch();
}
Нажимаешь Run, доходит до Oshibka pri otkrytii faila, и дальше не идёт.
Зависает, на Enter не реагирует. Что не так?
С содержимым файла ничего не происходит, запись в файл не делается.
0
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
27.05.2009, 12:16
All, в 20 строке убери точку с запятой после while.
1
1766 / 443 / 45
Регистрация: 09.04.2009
Сообщений: 2,599
27.05.2009, 18:48  [ТС]
Спасибо всем за помощь.
Вот работающий вариант, может кому пригодится.
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
//Среднее арифметическое чисел
//в файле A:\numbers.txt
#include<string.h>
#include<stdio.h>
#include<conio.h>
#define FNAME "A:\numbers.txt"//имя файла
void main()
{
char fname[80]=FNAME;
FILE *out;//text.fail
float sum=0;//сумма чисел
float sred;//среднее арифмет.
float i=0;//число
int g=0;//кол-во чисел
printf("\nСреднее арифметическое");
printf("\nчисел в файле. %s",fname);
//открываем файл для записи и чтения "a+"
out = fopen("A:\numbers.txt","a+");
printf("\nОшибка при открытии файла");
getch();
while(!feof(out))
 {
 fscanf(out,"%f",&i);
 sum=sum+i;
 g++;
 }
 sred=sum/g;
 fprintf(out,"\n\n%f\n",sred);
fclose(out);//закрываем файл
printf("\nВсего чисел:%i",g);
printf("\nСумма:%f\n",sum);
printf("\nСреднее арифметическое:%f\n",sred);
getch();
}
0
MaxiStyle
20.06.2010, 20:19
Помогите плиз эта же прога ток сохранять в другой файл, а не в тот который мы открываем
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2010, 20:19
Помогаю со студенческими работами здесь

Найти среднее арифметическое целых чисел, записанных в файле input.txt в столбик
Вот задача: Найти среднее арифметическое целых чисел, записанных в файле input.txt в столбик. Количество чисел неизвестно. Результат...

Написать программу, которая вычисляет среднее арифметическое чисел, находящихся в файле a:\numbers.txt
Написать программу, которая вычисляет среднее арифметическое чисел, находящихся в файле a:\numbers.txt Помогите пожалуйста

Cреднее арифметическое элементов матрицы
Даны две матрицы целых чисел M, К. Найти среднее арифметическое значение для каждой из них. Помогите пожалуйста написать код или...

Cреднее арифметическое элементов массива
4.Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет среднее арифметическое его элементов. ...

Cреднее арифметическое элиментов массива
Задание: Дан массив размера N и целые числа K и L (1 &lt; K &lt;= L &lt;= N). Найти среднее арифметическое всех элементов массива, кроме элементов...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru