Найти сумму неотрицательных чисел кратных 3 - C (СИ)
Формулировка задачи:
Дана последовательность целых чисел {Aj} произвольной длины. Найти сумму неотрицательных чисел кратных 3, наибольшее из таких чисел и номер этого числа в последовательности.
Только начал изучать С, не оч понятно (
Решение задачи: «Найти сумму неотрицательных чисел кратных 3»
textual
Листинг программы
#include <stdio.h>
int main(void){
int sum, i, j;
int a[] = { 1, 2, -3, 9, 4, 100, -5, 6, -7, 8 };
int n = sizeof(a)/sizeof(a[0]);
sum = 0;
j = -1;
for(i = 0; i < n; ++i){
if((a[i] >= 0) && ((a[i] % 3) == 0)){
if((j == -1) || (a[i] > a[j]))
j = i;
sum += a[i];
}
}
if(j != -1){
printf("sum: %d\n", sum);
printf("max: %d\nindex: %d\n", a[j], j);
} else
puts("not found!");
getchar();
return 0;
}
Объяснение кода листинга программы
- Объявление переменных:
- sum (сумма)
- i (счетчик цикла)
- j (поиск максимального элемента)
- a[] (массив чисел)
- n (количество элементов в массиве)
- Инициализация переменной n значением, равным количеству элементов в массиве a[].
- Инициализация переменной sum значением 0.
- Инициализация переменной j значением -1.
- Цикл for для прохода по всем элементам массива a[].
- Внутри цикла проверяется, является ли текущий элемент неотрицательным и кратным 3.
- Если текущий элемент удовлетворяет условиям, то:
- Если j == -1 или текущий элемент больше, чем элемент с индексом j, то обновляется значение j.
- К переменной sum добавляется значение текущего элемента.
- После цикла проверяется, было ли найдено хотя бы одно число, удовлетворяющее условиям.
- Если j != -1, то выводится сумма sum и максимальное число a[j].
- Если j == -1, то выводится сообщение
not found!.