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

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

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

Доброго времени суток! Ребят, помогите поправить процедуру. Она должна быть типа void, но при этом нужно, чтобы возвращала значение. Заранее благодарю
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <conio.h>
  4. void digit(int n, float &S)
  5. {
  6. S=0;
  7. while(n!=0)
  8. {
  9. S=S+n%10;
  10. n=n/10;
  11. }
  12. }
  13. int main() {
  14. int n;
  15. float S;
  16. printf("VVedite natural'noe chislo: ");
  17. scanf("%d",&n);
  18. digit(n,S);
  19. if (S>10) printf("\nVerno");
  20. else printf("\nNe verno");
  21. getch();
  22. }

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <conio.h>
  4.  
  5. void
  6. digit(int n, float* s)
  7. {
  8.     float t;
  9.     t = 0;
  10.     while(n!=0) {
  11.         t += n%10;
  12.         n /= 10;
  13.     }
  14.     *s = t;
  15. }
  16.  
  17. int
  18. main(void)
  19. {
  20.     int n;
  21.     float s;
  22.  
  23.     printf("VVedite natural'noe chislo: ");
  24.     scanf("%d", &n);
  25.     digit(n, &s);
  26.     if (s>10)
  27.         printf("Verno\n");
  28.     else
  29.         printf("Ne verno\n");
  30.     getch();
  31.  
  32.     return 0;
  33. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы