C语言编程:给一个不多于3位的正整数,要求编程实现(1)求它是几位数?(2)逆序输出各位数字?

如题所述

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a[3]={0,0,0};
    int n,i=0,j;
    printf("Please Input a number:");
    scanf("%d",&n);
    while(n)
    {
        a[i++]=n%10;
        n/=10;
    }
    printf("This number has %d digit(s).\n",i);
    printf("reverse number is:");
    for(j=0;j<i;j++)
        printf("%d",a[j]);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-18
#include<stdio.h>

int main()
{
int i=0;
int j = 0;
int n = 0;
int v[3] = {0};
printf("请输入一个不大于3位的正整数:");
scanf("%d", &n);
if((n<=0)|| (n>=1000))
{
printf("输入非法数字!");
return -1;
}
v[0] = n/100;
v[1] = (n%100)/10 ;
v[2] = (n%10);
printf("位数:%d ; 逆序: ",i = ((v[0]>0)? 3:((v[1]>0)?2:1)));
for(j=0;j<i;j++)
{
printf("%d", v[i-j]);
}

return 0;
}
第2个回答  2014-12-18
手机码字就不打代码了,给你个想法,把这个数不断取余,同时每取余一次,计数器加1,并把这个余数存入数组,直到这个数为0为止。那么,此时计数器的数就是位数,把数组顺序输出就是那个整数的逆序输出
第3个回答  2014-12-18
int data,times=0,res=0;

scanf("%d",data);
while(data)
{
    res = res*10 + data%10;
    data = data/10;
    times++;
}

printf("\r\n%d figures\r\n",times);

printf("result data:%d",res);

相似回答