Найти сумму неотрицательных чисел кратных 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!
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д