1.算法思路
2.代码实现
判断几位数:
# define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n;
printf("请输入一个整数:");
scanf("%d", &n);
int count = 0;
if (n == 0)
{
printf("是一位数\n");
}
else
{
while (n != 0)
{
n /= 10;//n=n/10
count++;//计数
}
printf("位数为:%d\n", count);
}
return 0;
}
逆序输出:
# define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n;
printf("请输入一个整数:");
scanf("%d", &n);
int count = 0;
int m = n;
if (n == 0)
{
printf("是一位数\n");
printf("逆序输出为0\n");
}
else
{
while (n != 0)
{
n /= 10;//n=n/10
count++;//计数
}
printf("位数为:%d\n", count);
}
for (int i = 0; i < count; i++)//是几位数就循环打印多少次
{
printf("%d", m % 10);//打印count次,依次从个位向高位输出
m = m / 10;//每输出一次个位数,用除法来丢弃一次,保证每次打印的都是新的个位数
}
return 0;
}
顺序输出
# define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<math.h>
int main()
{
int n;
printf("请输入一个整数:");
scanf("%d", &n);
int count = 0;
int m = n;
if (n == 0)
{
printf("是一位数\n");
printf("顺序输出为0\n");
}
else
{
while (n != 0)
{
n /= 10;//n=n/10
count++;//计数
}
printf("位数为:%d\n", count);
}
int p = pow(10, count - 1);//为了打印出最高位,10的(位数-1)次方,m/p则留下了最高位数字
while (m != 0)
{
printf("%d", m / p);//依次打印,从最高位数字开始
m %= p;//每打印一个数字并将它丢弃
p /= 10;//每打印一次数字的位数少一位,printf中m所除以的p则也变化
}
return 0;
}