1.数字计数问题:
//程序目的:统计n是个几位数字
//算法:每次丢弃个位数字(n/=10)
程序代码:
#include"stdio.h"
int GetFigures(int n)
{
int count = 0;
do
{
count++;
n /= 10;
}while(n!=0);
return count;
}
int main()
{
printf("%d\n",GetFigures(0));//测试样例
printf("%d\n",GetFigures(1));
printf("%d\n",GetFigures(12));
printf("%d\n",GetFigures(123));
printf("%d\n",GetFigures(1234));
printf("%d\n",GetFigures(12345));
return 0;
}
测试样例图:
2.数字顺序输出问题:
//程序目的:对数字类型问题分别顺序输出每一位数字
//算法:调用上述GetFigures函数进行计数,利用求余与除10循环,依次进行输出,直到该数字为0为止
程序代码:
#include"stdio.h"
#include"math.h"
int GetFigures(int n)
{
int count = 0;
do
{
count++;
n /= 10;
}while(n!=0);
return count;
}
void PrintOrder(int n)
{
int count = GetFigures(n);
int power = pow(10.0,count-1);
do
{
printf("%d ",n/power);
n %= power;
power /= 10;
}while(n!=0);
printf("\n");
}
int main()
{
PrintOrder(0);//测试样例
PrintOrder(123);
PrintOrder(1234);
PrintOrder(12347);
PrintOrder(12348996);
return 0;
}
测试样例图:
3.数字逆序输出问题:
//程序目的:逆序输出数字问题
//算法:得到个位数字,丢弃个位数字
#include"stdio.h"
void PrintReverse(int n)
{
do
{
printf("%d ",n%10);//得到个位数字
n/=10;//丢弃个位数字
}while(n!=0) ;
printf("\n");
}
int main()
{
PrintReverse(0);//测试样例
PrintReverse(123);
PrintReverse(12345);
PrintReverse(-12345);
PrintReverse(999999999);
return 0;
}
测试样例图: