C语言:用递归法讲一个整数n转换成字符串。例如输入483,应输出字符串“483”,n的位数不定,为任意位数整
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言:用递归法讲一个整数n转换成字符串。例如输入483,应输出字符串“483”,n的位数不定,为任意位数整相关的知识,希望对你有一定的参考价值。
原程序请看图片,请哪位懂的人告诉我程序中putchar(n%10+'0')是什么意思啊?为什么用putchar而不用printf?
输入一个十进制数,输出它的二进制数,这狠类似#include<stdio.h>
void fun(int n, int r)
if (n>1) fun(n/2,r); //大于1时(对应的二进制数多于1位的数)递归
printf("%d",n%2); //返回前输出本次的余数
main()
int n,r=2;
scanf("%d",&n);
fun(n,r);
printf("\n");
参考技术A 为什么是逆循环输出的 参考技术B n%10 这是对10取余数,如n=2345 时 n%10=5 ,n%10+'0' 就是在'0' 的ASCII码值上再加上n%10得到的值,如'0' 的ASCII码值是48,n%10+'0'=5+48=53。这么做是因为ASCII码表中数字字符是从0到9升序排列的,这样写就不用去考虑'0' 的ASCII码值是多少了。
至于为什么用putchar而不用printf,其实putchar()函数的作用等同于printf("%c", ch),所以用printf也是可以的。只是putchar()的功能就是输出一个字符,不需要格式化,这种场合下比printf方便。本回答被提问者采纳
ZZNUOJ_用C语言编写程序实现1141:进制转换(附完整源码)
题目描述
将十进制整数n转换成二进制,并保存在字符数组中,最后输出。
输入
输入一个非负整数n,n<2^31。
输出
输出一个01字符串,即n对应的二进制数,不含前导0。输出占一行。
样例输入
13
样例输出
1101
提示
字符串逆置函数 strrev() 在本平台上无法编译。
完整源码:
#include<stdio.h>
main()
以上是关于C语言:用递归法讲一个整数n转换成字符串。例如输入483,应输出字符串“483”,n的位数不定,为任意位数整的主要内容,如果未能解决你的问题,请参考以下文章