题目:给出一个整数,要求:
1、求出它是几位数;
2、分别输出每一位数字;
3、按逆序输出每一位数字;
# include <stdio.h>
/*对于求位数小编写了三个函数,最后我们根据测试用例对他们的结果进行比较。
要求一个数的位数,采用逐位丢弃数字的方法,丢弃数字的个数即为数字的位数。用数字n整除10,整数除整数还是整数,这样就丢弃了个位数字,位数+1,然后逐位采用此方法丢弃个位数字直至该数为0。*/
int Num(int n)
{
}
int Num1(int n)
{
int count;
int Num2(int n)
{
}
因为按逆序输出数字较为简单所以我们先完成第3小题
按逆序输出的各位数字,只能从个位数字开始打印,首先对该数取余10,打印的余数即为个位数字,再逐位整除10丢掉个位数字。循环进行直至该数为0则结束。
void PrintNixu(int n)
{
}
/*按顺序输出的各位数字,就要从最高位数字开始打印,我们必须调用之前求位数的子函数Num,得到它的返回值count。然后for循环语句得到n每次需要整除的除数b,首先用n整除b,打印的数即为最高位数字,再逐位整取余,循环进行直至该数为0则结束。*/
void PrintShunxu(int n)
{
}
int main()
{
/*根据这几组测试用例可以看出,for循环和while循坏几乎没有差别,它们均存在一个bug,就是当n=0的时候,位数为0,使用do-while语句则不会出现这个问题。*/
}
好啦,这个题就到此结束了,多练习!多练习!多练习!
加油!自己以及各位码农!