Как сделать так, чтобы процедура типа void возвращала значение? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Ребят, помогите поправить процедуру. Она должна быть типа void, но при этом нужно, чтобы возвращала значение. Заранее благодарю
#include <stdio.h>
    #include <math.h>
    #include <conio.h>
         
    void digit(int n, float &S)
    {         
         S=0;
         while(n!=0)
         {
              S=S+n%10;
              n=n/10;
         }          
    }
    
    int main() {
     
        int n;
        float S;
        
        printf("VVedite natural'noe chislo: ");
        scanf("%d",&n);
        digit(n,S);
        if (S>10) printf("\nVerno");
        else printf("\nNe verno");        
        getch();    
    }

Решение задачи: «Как сделать так, чтобы процедура типа void возвращала значение?»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
void
digit(int n, float* s)
{
    float t;
    t = 0;
    while(n!=0) {
        t += n%10;
        n /= 10;
    }
    *s = t;
}
 
int
main(void)
{
    int n;
    float s;
 
    printf("VVedite natural'noe chislo: ");
    scanf("%d", &n);
    digit(n, &s);
    if (s>10)
        printf("Verno\n");
    else
        printf("Ne verno\n");
    getch();
 
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: для работы с выводом на экран, для выполнения математических операций и для работы с клавиатурой и мышью.
  2. Создание функции digit с типом возвращаемого значения void и двумя аргументами типа int и float*. Функция принимает целое число n и указатель на переменную типа float s. Внутри функции объявлена временная переменная t типа float.
  3. В цикле while происходит перебор цифр числа n. На каждой итерации к переменной t прибавляется остаток от деления n на 10, а затем n делится на 10.
  4. По завершении цикла, значение переменной t присваивается переменной s.
  5. В функции main создается переменная типа int n для ввода числа и переменная типа float s для хранения результата.
  6. С помощью функции scanf вводится натуральное число.
  7. Вызывается функция digit с передачей в нее значения переменной n и адреса переменной s.
  8. С помощью условного оператора if проверяется, больше ли значение переменной s 10. При этом выводится соответствующее сообщение на экран.
  9. Вызов функции getch для приостановки работы программы до нажатия клавиши.
  10. Завершение функции main с возвратом значения 0.

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


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

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

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