C编程:给一个不多于5位的正整数,要求: (1)求出它是几位数; (2)分别打印出每一位数字; (3

C编程:给一个不多于5位的正整数,要求:
(1)求出它是几位数;
(2)分别打印出每一位数字;
(3)按逆序打印出各位数字,例如输入数为321,应输出1、2、3。

第1个回答  2011-11-02
#include <stdio.h>
void main()
{
int digits=0; //位数
int i=0;
long int temp;
long int number; //输入的数据
int a[5]; //存储各位
printf("Input a postive interger!\n");
scanf("%ld",&number);
if((number<0)||(number>=100000))
{
printf("Input Error!\n");
return;
}
temp=number;
while(temp!=0)
{
digits++;
temp=temp/10;
}
printf("The digits of the interger is %d\n",digits);
a[4]=number%10; //个位 temp=number/10;
a[3]=temp%10; //十位
temp=temp/10;
a[2]=temp%10; //百位
temp=temp/10;
a[1]=temp%10; //千位
a[0]=temp/10; //万位
while(i<digits)
{
printf("%d",a[4-i]);
i++;
}
printf("\n");
}本回答被提问者和网友采纳
第2个回答  2013-03-31
#include<stdio.h>
#include<string.h>
void main()
{
char a[40];
int k,i;
gets(a);
k=strlen(a);
printf("它是%d位数\n",k);
for(i=k-1;i>=0;i--)
printf("%c ",a[i]);
printf("\n");
}
第3个回答  2018-06-24
刚刚打的,大学作业对不对
#include<stdio.h>
int main()
{
int s[5]={0},a,i;
printf("enter a: ");
scanf("%d",&a);
s[0]=a%10;
s[1]=(a%100-a%10)/10;
s[2]=(a%1000-a%100)/100;
s[3]=(a%10000-a%1000)/1000;
s[4]=(a-a%10000)/10000;
for(i=4;i>=0&&i<5;i--)
{
while(s[i]!=0)
{
printf("%d ",s[i]);break;
}
}
printf("\n");
for(i=0;s[i]>0&&i<5;i++)
{
printf("%d ",s[i]);
}
printf("\n");
printf("%d",i);
getchar();getchar();
return 0;
}
相似回答