Сумма каждого третьего положительного - C (СИ)
Формулировка задачи:
Дана целочисленная последовательность. Признаком завершения последовательности является ноль, записанный после последнего элемента последовательности. Вычислить сумму каждого третьего положительного элемента, начиная с первого положительного.
Пример входного файла:
29070 23565 -29141 29915 22568 21096 2...
Пример выходного файла:
1574377
В чем ошибка?
#include<stdio.h>
int main()
{
int n,k=0,s=0;
while(1)
{
scanf("%d", &n);
if(n>0)
{
if(k%3==0) printf("%d",n);
k++;
}
s=s+n;
}
printf("%d",s);
return 0;
}Решение задачи: «Сумма каждого третьего положительного»
textual
Листинг программы
#include<stdio.h>
int main(void)
{
int n = EOF , k = 0, s = 0;
while(n != 0)// если n не 0 - цикл работает, как только 0 - цикл заканчивает работу
{
printf("Enter 'n': ");
scanf("%d", &n);
if(n > 0){
if(k%3 == 0) printf("\t%d\n",n);
k++;
}
s+=n;
}
printf("\nResult %d\n",s);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Инициализируются три переменные: n, k и s.
- Переменная n инициализируется значением EOF, которое обычно используется в качестве маркера конца файла в стандартных вводах и выводах.
- Переменная k инициализируется нулем.
- Переменная s инициализируется нулем.
- Затем начинается цикл while, который продолжается до тех пор, пока значение переменной n не станет равным нулю.
- В каждой итерации цикла пользователю предлагается ввести значение переменной n.
- Если введенное значение больше нуля, то проверяется, делится ли значение переменной k на 3 без остатка.
- Если да, то введенное значение выводится на экран.
- Значение переменной k увеличивается на единицу.
- Значение переменной s увеличивается на введенное значение переменной n.
- После окончания цикла выводится на экран значение переменной s.
- Код возвращает нулевое значение, что обычно означает успешный конец работы программы.