Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
