一道C语言编程题,求大神们帮帮忙,谢谢了。。
编程实现:输入一个不多于5位的正整数,要求:(1)输出它是几位数,(2)分别输出每一位数字,(3)按逆序输出各位数字,如原数为321,则应输出123。应准备以下测试数据要...
编程实现:输入一个不多于5位的正整数,要求:(1)输出它是几位数,(2)分别输出每一位数字,(3)按逆序输出各位数字,如原数为321,则应输出123。
应准备以下测试数据
要处理的数为1位正整数;
要处理的数为2位正整数;
要处理的数为3位正整数;
要处理的数为4位正整数;
要处理的数为5位正整数;
除此之外,程序还应当对不合法的输出作必要的处理。例如:输入负数。 展开
应准备以下测试数据
要处理的数为1位正整数;
要处理的数为2位正整数;
要处理的数为3位正整数;
要处理的数为4位正整数;
要处理的数为5位正整数;
除此之外,程序还应当对不合法的输出作必要的处理。例如:输入负数。 展开
4个回答
推荐于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;
}
}
我用笨方法写的,没用字符串什么的,你可以看看
#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;
}
}
我用笨方法写的,没用字符串什么的,你可以看看
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
刚才忘加判断了..
好孩子要自己写作业啊 - -
#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;
}
刚才忘加判断了..
好孩子要自己写作业啊 - -
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
# 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]);
}
}
}
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]);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询