给一个不多于5位的正整数,输出它的位数及每位数字的值
要求:
(1)求出它是几位数;
(2)分别输出每一位数字;
(3)逆序输出各位数字;
看了许多使用if语句判断的方法,自己想了一种写法。
代码
#include<stdio.h>
int main()
{
char n;//将输入初始化为字符,实现逐一输入
int i = 0;//数组序号
int str[6];//定义数组
int cnt = 0;//用于计数
while ((n = getchar()) != '\n')//回车结束输入
{
n = (int)n - 48;//将字符转化为数字
str[i] = n;//输入数组
i++;
cnt++;
}
for (int a = 0; a < cnt; a++)
{
printf("%d ", str[a]);//逐个数出
}
printf("\n");
for (int a = cnt - 1; a >= 0; a--)
{
printf("%d", str[a]);//倒序输出
}
printf("\n");
printf("是%d位数\n", cnt);//输出位数
return 0;
}