一道C语言编程题,求大神们帮帮忙,谢谢了。。

编程实现:输入一个不多于5位的正整数,要求:(1)输出它是几位数,(2)分别输出每一位数字,(3)按逆序输出各位数字,如原数为321,则应输出123。应准备以下测试数据要... 编程实现:输入一个不多于5位的正整数,要求:(1)输出它是几位数,(2)分别输出每一位数字,(3)按逆序输出各位数字,如原数为321,则应输出123。

应准备以下测试数据

要处理的数为1位正整数;

要处理的数为2位正整数;

要处理的数为3位正整数;

要处理的数为4位正整数;

要处理的数为5位正整数;
除此之外,程序还应当对不合法的输出作必要的处理。例如:输入负数。
展开
 我来答
匿名用户
推荐于2016-05-20
展开全部
#include<stdlib.h>
#include<stdio.h>
int main()
{
int num;
int a;
scanf("%d",&num);
if(num<0)
{
printf("非法输入!");
}
else if(num/10==0)
{
printf("该数字为一位数!\n");a=1;
}
else if(num/100==0)
{
printf("该数字为二位数!\n"); a=2;
}
else if(num/1000==0)
{
printf("该数字为三位数!\n"); a=3;
}
else if(num/10000==0)
{
printf("该数字为四位数!\n"); a=4;
}
else
{
printf("该数字为五位数!\n");a=5;
}
switch(a)
{
case 1:printf("正序为:%d\n",num);
printf("逆序为:%d\n",num);
break;
case 2:printf("正序为:%d\n",num);
printf("逆序为:%d%d\n",num%10,num/10);
break;
case 3:printf("正序为:%d\n",num);
printf("逆序为:%d%d%d\n",num%10,num%100/10,num/100);
break;
case 4:printf("正序为:%d\n",num);
printf("逆序为:%d%d%d%d\n",num%10,num%100/10,num%1000/100,num/1000);
break;
case 5:printf("正序为:%d\n",num);
printf("逆序为:%d%d%d%d%d\n",num%10,num%100/10,num%1000/100,num%10000/1000,num/10000);
break;
}

}
我用笨方法写的,没用字符串什么的,你可以看看
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
O_步氏死宅_O
2014-10-06
知道答主
回答量:10
采纳率:0%
帮助的人:12.6万
展开全部
#include<stdio.h>
#include <string.h>
int main()
{
int i,j,k,n=-1,x;
int num[100];
while(n<=0)
{
scanf("%d",&n);
if(n<=0)
printf("非法输入\n");
}
k=0;
for(;n;n/=10)
num[k++]=n%10;

printf("your number have %d digit\n",k);

for(i=0; i<k ; i++) //
printf("%d\t",num[i]);
printf("\n");

j=k-1;
for(i=0; i<j; i++,j--)
{
x=num[i];
num[i]=num[j];
num[j]=x;
}

for(i=0; i<k ; i++) //
printf("%d\t",num[i]);
printf("\n");
return 0;
}

刚才忘加判断了..
好孩子要自己写作业啊 - -
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文正153
2014-10-06 · TA获得超过2.1万个赞
知道大有可为答主
回答量:2221
采纳率:63%
帮助的人:620万
展开全部
# include <stdio.h>
# include <string.h>

int main(void)
{
    char ui[5] = {0};
    int i;
    
    for(i=0; i<5; i++)
    {
        ui[i] = getchar();
        if (ui[i] == '\n')
            break;
        while(ui[i]<'0'||ui[i]>'9')
        {
            puts("请输入一个正整数!请重新输入:");
            ui[i] = getchar();
        }
    }
    ui[i] = 0;
    printf("你输入的是一个%d位数\n", strlen(ui));
    printf("你输入的数的每位数分别为:");
    for(i=0; ui[i]!=0; i++)
    {
        putchar(ui[i]);
        putchar('\t');
    }
    putchar('\n');
    for(i=4; ui[i]!=0; i--)
    {
        putchar(ui[i]);
    }
    putchar('\n');
    

    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-10-06
展开全部
#include <stdio.h>
main()
{
int a,i,t[5],n;;
while(1)
{

printf("\npls input number");
scanf("%d",&a);
if(a==111111)break;

for(i=0;i<5;i++)
{
t[i]=a%10;
a=a/10;

if(a==0)
{
n=i+1;
printf("n=%d\n",n);
break;
}
}
for(i=0;i<n;i++)
{
printf("%d ",t[i]);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式