Составители:
Рубрика:
12
Пример выполнения лабораторной работы.
Написать рекурсивную функцию printd(), печатающую целое число
в виде последовательности символов ASCII (т. е. цифр, образующих
запись этого числа), а также вычисляющую сумму цифр в десятичной
записи числа:
#include <stdio.h>
#include <conio.h>
int printd(int num) /* параметр num - печатаемое число */
{ int i, sumTmp=0;
if (num < 0)
{putchar('-'); num = -num;}
if ((i = num/10) != 0) // пока в числе есть цифры
sumTmp=printd(i); /* Рекурсивный вызов функции */
putchar(num % 10 + '0');//преобразуем цифру числа в
//код символа и выводим на экран
sumTmp+=num%10; //накапливаем сумму цифр
return sumTmp;
начало printd
вход: целый num
выход: целый sumTmp
sum
Tmp
=
0
конец printd
i<>0
num=
-
num
нет
да
Рисунок 4. Блок-схема функции посимвольного вывода целого числа
Вывод ‘-’
нет
num<0
i=num
div 10
да
sumTmp=printd(i)
Вывод кода цифры num mod 10
sumTmp=sumTmp+num mod 10
Пример выполнения лабораторной работы. Написать рекурсивную функцию printd(), печатающую целое число в виде последовательности символов ASCII (т. е. цифр, образующих запись этого числа), а также вычисляющую сумму цифр в десятичной записи числа: начало printd вход: целый num выход: целый sumTmp sumTmp=0 нет num<0 да Вывод ‘-’ num=-num i=num div 10 нет i<>0 да sumTmp=printd(i) Вывод кода цифры num mod 10 sumTmp=sumTmp+num mod 10 конец printd Рисунок 4. Блок-схема функции посимвольного вывода целого числа #include#include int printd(int num) /* параметр num - печатаемое число */ { int i, sumTmp=0; if (num < 0) {putchar('-'); num = -num;} if ((i = num/10) != 0) // пока в числе есть цифры sumTmp=printd(i); /* Рекурсивный вызов функции */ putchar(num % 10 + '0');//преобразуем цифру числа в //код символа и выводим на экран sumTmp+=num%10; //накапливаем сумму цифр return sumTmp; 12
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »