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

  1. Инициализирует две переменные типа int: buf и sum. Переменная buf инициализируется значением аргумента a, а переменная sum инициализируется нулевым значением.
  2. Переменная buf сохраняет нечётные цифры аргумента a в то время как переменная sum суммирует все чётные цифры аргумента a.
  3. В цикле while происходит проверка каждой цифры числа buf. Если цифра нечётная, то функция возвращает значение переменной a. Если цифра чётная, то она удаляется из числа buf путём деления на 10.
  4. Если после цикла while значение переменной buf равно нулю, то все цифры аргумента a были чётными, и функция возвращает 0.
  5. Если в процессе выполнения функции было найдено нечётное число, то функция возвращает значение переменной a. Таким образом, функция Check вычисляет сумму всех чётных цифр аргумента a и возвращает её. Если среди цифр аргумента есть хотя бы одна нечётная цифра, функция вернёт значение этой цифры.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы