Файлы. Написать программу, которая вычисляет сумму первых N четных положительных чисел - C (СИ)
Формулировка задачи:
Исходные данные (N – количество чисел) вводятся из файла Input.txt. Результаты работы программы записываются в файл Out.txt. Написал код программы, но где-то ошибка помогите разобраться
#include <stdio.h>
#include <conio.h>
#include <math.h>
//---------------------------------------------------------------------------
int main ()
{
FILE *f1, *f2;
int n, sum;
int i = 0;
f1 = fopen("input.txt", "r");
f2 = fopen("out.txt", "w");
fscanf(f1, "%d", &n);
while(i<n)
{
sum += 2;
i++
}
fprintf(f2, "%d", sum);
fclose(f1);
fclose(f2);
getch();
return 0;
}Решение задачи: «Файлы. Написать программу, которая вычисляет сумму первых N четных положительных чисел»
textual
Листинг программы
#include <stdio.h>
int main(){
FILE *in=fopen("input.txt","r");
int n;
int a;
int sum=0;
int i;
if (in==NULL){
perror("oshibka otkritiya faila");
}
if (fscanf(in,"%d",&n)!=1){
printf("oshibka s4itivani9");
}
i=n;
while (fscanf(in,"%d",&a)==1 && i>0){
if ((a%2)==0){
sum+=a;
--i;
}
}
if (i!=0){
printf("koli4estvo 4etnix 4isel menshe %d",i);
}
FILE *out=fopen("output.txt","w");
fprintf (out,"%d",sum);
fclose (in);
fclose (out);
return 0;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки ввода-вывода.
- Объявление переменных:
in- файловый указатель для чтения из файлаinput.txt;n- переменная для хранения числа, считанного из файла;a- переменная для хранения числа, считанного из файла;sum- переменная для хранения суммы четных чисел;i- счетчик чисел.
- Проверка на открытие файла
input.txtдля чтения. - Чтение числа
nиз файлаinput.txt. - Установка значения счетчика
iравнымn. - Чтение чисел из файла
input.txtдо тех пор, пока они делятся на 2 без остатка и пока счетчикiбольше 0. - Проверка, что число
aделится на 2 без остатка. - Добавление числа
aк суммеsumи уменьшение значения счетчикаiна 1. - Проверка, что значение счетчика
iбольше 0 после цикла. - Открытие файла
output.txtдля записи. - Запись значения суммы
sumв файлoutput.txt. - Закрытие файлов
input.txtиoutput.txt. - Выход из программы с возвращаемым значением 0.