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