[求助]代码出错,请帮忙
/*四。对if语句的熟悉
给一个不多于5位的正整数,要求
1.求出它是几位数
2.分别打印出每一个数字
3.按逆序打印出各位数字,原数为123,应输出321
*/
#include<stdio.h>
void main()
{
int x,n,m;
printf("please enter the number 1~99999:\n");
scanf("%d",&x);
if(x>10000&&x<99999)
{
printf("the number is 5 weishu\n"); //写到这里做第2个要求分别打印的时候出错了我看不出来
n=x/10000;
m=x%10000;
printf("%d\n",n);
n=m;
n=n/1000;
m=n%1000;
printf("%d\n",n);
n=m;
n=n/100;
m=n%100;
printf("%d\n",n);
n=m;
n=n/10;
m=n%10;
printf("%d\n%d\n",n,m); //不知道为什么,取后面3位数的时候老出错,全是0,郁闷
}
else if(x>1000&&x<9999)
printf("the number is 4 weishu\n");
else if(x>100&&x<999)
printf("the number is 3 weishu\n");
else if(x>10&&x<99)
printf("the number is 2 weishu\n");
else if(x>1&&x<9)
printf("the number is 1 weishu\n");
}
我们现在只学到用IF语句,麻烦谁帮我看看其中5位数那段怎么错了,刚做到第2个要求把数分别打出来。
上面的代码只写了一点,还没考虑到倒转输出就卡住了。麻烦大家帮帮我,谢谢
还有我的英文很糟糕,5weishu就是5位数=。=
搜索更多相关的解决方案:
代码
----------------解决方案--------------------------------------------------------
呵呵,要不要再自己想想?
给你个提示
n=n/1000;
m=n%1000;
n=n/100;
m=n%100;
n=n/10;
m=n%10;
你能看出这些语句每两个组合放在一起会有什么问题吗?
----------------解决方案--------------------------------------------------------
啊,我明白了,N=N/100是赋值了啊,太感谢你了!!
我也是才从别的论坛找到这个论坛的,真是好地方,不直接给答案,带领我思考。
非常感谢你!
我是刚开始学习编程的,以后还要多麻烦大家。
再次感谢朋友们,以后我会经常来讨教的。
时间不早了,明天起来再编,以免老爸发标。
早点休息吧~~
----------------解决方案--------------------------------------------------------
对if语句的熟悉 给一个不多于5位的正整数,要求 1.求出它是几位数 2.分别打印出每一个数字 3.按逆序打印出各位数字,原数为123,应输出321
#include<stdio.h>
void main()
{
int x,n1,n2,n3,n4,m;
printf("please enter the number 1~99999:\n");
scanf("%d",&x);
if(x>=10000&&x<=99999)
{
printf("the number is 5 weishu\n");
m=x%10000;
n1=x/10000;
printf("%d\n",n1);
n2=m;
m=n2%1000;
n2=n2/1000;
printf("%d\n",n2);
n3=m;
m=n3%100;
n3=n3/100;
printf("%d\n",n3);
n4=m;
m=n4%10;
n4=n4/10;
printf("%d\n%d\n",n4,m);
printf("翻转打印:%d %d %d %d %d\n",m,n4,n3,n2,n1);
}
else if(x>=1000&&x<=9999)
{
printf("the number is 4 weishu\n");
m=x%1000;
n1=x/1000;
printf("%d\n",n1);
n2=m;
m=n2%100;
n2=n2/100;
printf("%d\n",n2);
n3=m;
m=n3%10;
n3=n3/10;
printf("%d\n%d\n",n3,m);
printf("翻转打印:%d %d %d %d\n",m,n3,n2,n1);
}
else if(x>=100&&x<=999)
{
printf("the number is 3 weishu\n");
m=x%100;
n1=x/100;
printf("%d\n",n1);
n2=m;
m=n2%10;
n2=n2/10;
printf("%d\n%d\n",n2,m);
printf("翻转打印:%d %d %d\n",m,n2,n1);
}
else if(x>=10&&x<=99)
{
printf("the number is 2 weishu\n");
m=x%10;
n1=x/10;
printf("%d\n%d\n",n1,m);
printf("翻转打印:%d %d\n",m,n1);
}
else if(x>=1&&x<=9)
{
printf("the number is 1 weishu\n");
printf("%d",x);
printf("翻转打印:%d",x);
}
}
做出来了,呵呵,谢谢神vLinux飘飘给予我的帮助。
[此贴子已经被作者于2005-3-26 19:59:40编辑过]
----------------解决方案--------------------------------------------------------
浏览器不能运行C代码的
----------------解决方案--------------------------------------------------------