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