输入一个不超过4位的整数,判断它是几位数,并分别输出各位数。

如题所述

#includemain(){intn,tempn=0,num=0;printf("pleaseinputthenumber:\n");scanf("%d",&n);//输入整数nwhile(n)//如果n=0则退出循环{tempn=tempn*10+n%10;//tempn是为了计算逆序的数n=n/10;//除掉一位num++;//num为了判断位数}printf("位数是:%d,逆序后是:%d\n",num,tempn);system("pause");}///这是最简单的解法了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-03
#include<stdio.h>
main( )
{ int x,a,b,c,d,n;
printf("请输入个不大于4位的正整数:");
scanf("%d",&x);
if(x>999&&x<10000)
printf("n=4\n");
else if(x>99&&x<1000)
printf("n=3\n");
else if(x>9&&x<100)
printf("n=2\n");
else if(x>=0&&x<10)
printf("n=1\n");
else
printf("你的输入不合法\n");

}
第2个回答  推荐于2017-11-03
用C++写的:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int input; //
int num=0; // 整数的位数
int digit[10]; //存放各个位数
cout<<"请输入一个整数:";
cin>>input;
int model;
while(input/10!=0)
{
model=input%10;
input=input/10;
digit[num]=model;
num++;
}
digit[num]=input;
num++;
cout<<"位数为:"<<num<<endl;
cout<<"各位数分别是:"<<endl;
for(int i=num-1;i>=0;i--)
cout<<digit[i]<<" ";
cout<<endl;
system("pause");
return 0;
}本回答被网友采纳
第3个回答  2011-04-22
给你个递归的,几位都行(不超越类型极限就行)
void fun(int n, int x)
{
if(10*x <= n)
fun(n ,10*x);
else
{
while(x != 0)
{
printf(" %d ",n/x);
n %= x;
x/=10;
}
printf("\n");
}
return 0;
}
int main(void)
{
int N;
scanf("%d",&N);
fun(N ,1);
getch();
}
相似回答