C语言如何编程实现给出一个不多于4位的正整数,输出它是几位数并且按逆序输出每一位数字?
展开全部
#include <stdio.h>
#include <math.h>
int main(void)
{
int num;
do
{
printf("请输入一个不大于四位的数据:\n");
scanf("%d", &num);
while(getchar()!='\n') //防止意外输入无效字符
continue;
}while(!(num>0 && num<10000));
int i=1, weishu=0;
for(i=1; num/i>0; i=i*10)
weishu++;
printf("输入的数据是%d位数据\n", weishu);
int num1 = num;
for(i=pow(10, weishu-1); i>=1; i/=10)
{
printf("%d\t", num1/i);
num1 = num1%i;
}
printf("\n");
num1 = num;
for(i=10; i<=pow(10, weishu); i*=10)
{
printf("%d\t", num1%10);
num1 = num1/10;
}
printf("\n");
return 0;
}
/*
VC++ 6.0 运行结果
请输入一个不大于四位的数据:
1234
输入的数据是4位数据
1 2 3 4
4 3 2 1
Press any key to continue
*/
#include <math.h>
int main(void)
{
int num;
do
{
printf("请输入一个不大于四位的数据:\n");
scanf("%d", &num);
while(getchar()!='\n') //防止意外输入无效字符
continue;
}while(!(num>0 && num<10000));
int i=1, weishu=0;
for(i=1; num/i>0; i=i*10)
weishu++;
printf("输入的数据是%d位数据\n", weishu);
int num1 = num;
for(i=pow(10, weishu-1); i>=1; i/=10)
{
printf("%d\t", num1/i);
num1 = num1%i;
}
printf("\n");
num1 = num;
for(i=10; i<=pow(10, weishu); i*=10)
{
printf("%d\t", num1%10);
num1 = num1/10;
}
printf("\n");
return 0;
}
/*
VC++ 6.0 运行结果
请输入一个不大于四位的数据:
1234
输入的数据是4位数据
1 2 3 4
4 3 2 1
Press any key to continue
*/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询