Вычислить сумму элементов массива, содержащих хотя бы одну нечётную цифру - C (СИ)
Формулировка задачи:
Вычислить сумму элементов массива, содержащих хотя бы одну нечётную цифру.
Что нужно исправить/добавить?
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define N 10
- #define A -50
- #define B 50
- void Init (int *a, int n)
- {
- int i;
- for (i=0;i<n;i++)
- a[i]=A+rand()%(B-A+1);
- }
- void Print(int *a, int n)
- {
- int i;
- for(i=0;i<n;i++)
- printf("%d\n",a[i]);
- putchar('\n');
- }
- int Check(int a)
- {
- int buf, sum;
- buf=a;
- while (buf)
- {
- if((buf%2)!=0)
- sum+=a;
- else
- buf/=10;
- }
- return sum;
- }
- int main()
- {
- int a[N],i,count;
- srand(time(NULL));
- Init (a,N);
- Print(a,N);
- // Тут определённо должно что-то быть
- return 0;
- }
Решение задачи: «Вычислить сумму элементов массива, содержащих хотя бы одну нечётную цифру»
textual
Листинг программы
- int Check(int a)
- {
- int buf, sum;
- buf=a;
- while (buf)
- {
- if((buf%2)!=0)
- return a;
- else
- buf/=10;
- }
- return 0;
- }
Объяснение кода листинга программы
В данном коде представлена функция с именем Check, которая принимает целочисленный аргумент типа int по имени a. Функция выполняет следующие действия:
- Инициализирует две переменные типа int: buf и sum. Переменная buf инициализируется значением аргумента a, а переменная sum инициализируется нулевым значением.
- Переменная buf сохраняет нечётные цифры аргумента a в то время как переменная sum суммирует все чётные цифры аргумента a.
- В цикле while происходит проверка каждой цифры числа buf. Если цифра нечётная, то функция возвращает значение переменной a. Если цифра чётная, то она удаляется из числа buf путём деления на 10.
- Если после цикла while значение переменной buf равно нулю, то все цифры аргумента a были чётными, и функция возвращает 0.
- Если в процессе выполнения функции было найдено нечётное число, то функция возвращает значение переменной a. Таким образом, функция Check вычисляет сумму всех чётных цифр аргумента a и возвращает её. Если среди цифр аргумента есть хотя бы одна нечётная цифра, функция вернёт значение этой цифры.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д