Дана последовательность натуральных чисел {Aj} произвольной длины. Найти сумму чисел, заканчивающихся цифрой 0 - C (СИ)
Формулировка задачи:
Дана последовательность натуральных чисел {Aj} произвольной длины. Найти сумму чисел, заканчивающихся цифрой 0, наибольшее из таких чисел, и номер этого числа в последовательности.
Решение задачи: «Дана последовательность натуральных чисел {Aj} произвольной длины. Найти сумму чисел, заканчивающихся цифрой 0»
textual
Листинг программы
#include <stdlib.h> // rand #include <time.h> // time #include <stdio.h> // putc #define ARRAY_SIZE 20 int array[ARRAY_SIZE]; int index[ARRAY_SIZE]; void find_all_ending_zeros(void) { int k = 0; for( int i = 0; i < ARRAY_SIZE; ++i ) { if( array[i] % 10 == 0 ) { index[k++] = i; } } if( k != ARRAY_SIZE) { index[k] = -1; } } int calc_sum(void) { int sum = 0; for( int i = 0; i < ARRAY_SIZE; ++i ) { if( index[i] == -1 ) { break; } sum += array[index[i]]; } return sum; } int find_max(void) { int max = -1; int idx_max = -1; for( int i = 0; i < ARRAY_SIZE; ++i ) { if( index[i] == -1 ) { break; } if( array[index[i]] > max ) { idx_max = index[i]; max = array[idx_max]; } } return idx_max; } void fill_array(void) { for( int i = 0; i < ARRAY_SIZE; ++i ) { array[i] = rand() % 100; } } void print_array(int* arr, int siz) { while( siz-- && (*arr != -1) ) { printf("%d ", *arr++); } putchar('\n'); } int main(void) { srand(time(NULL)); fill_array(); print_array(array, ARRAY_SIZE); find_all_ending_zeros(); print_array(index, ARRAY_SIZE); printf("sum = %d\n", calc_sum()); int idx_max = find_max(); if( idx_max != -1 ) { printf("max %d: %d\n", idx_max, array[idx_max]); } return 0; }
Объяснение кода листинга программы
- Программа находит все числа в массиве, которые заканчиваются на 0 и сохраняет их индексы в другой массив.
- Функция calc_sum считает сумму всех найденных чисел.
- Функция find_max находит максимальное из найденных чисел и его индекс.
- Массив заполняется случайными числами от 0 до 99.
- Ввод массива выводится на экран.
- Выводится сумма найденных чисел, заканчивающихся на 0.
- Выводится максимальное из найденных чисел и его индекс.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д