从键盘任意输入一个3位整数,编程计算并输出它的逆序数 程序哪里错了??为什么输出的是一个长长的负数

#include<stdio.h>
main()
{
int x,b1,b2,b3,y;
printf("请输入一个三位数:");
scanf("%d",&x);
b1=x/100;
b2=(x-b2*100)/10;
b3=x%10;
y=b3*100+b2*10+b1;
printf("三位数x=%d的逆序数%d\n",x,y);

}

第1个回答  2012-10-20
#include<stdio.h>
main()
{
int x,b1,b2,b3,y;
printf("请输入一个三位数:");
scanf("%d",&x);
b1=x/100;
b2=(x-b1*100)/10;
b3=x%10;
y=b3*100+b2*10+b1;
printf("三位数x=%d的逆序数%d\n",x,y);

}
你试试
第2个回答  2012-10-11
void main()
{int x,y;
int a,b,c;

printf("Please input a num:");
scanf("%d",&x);

a=x/100;
b=(x/10)%10;
c=x%10;

y=100*c+10*b+a;
printf("y=%d\n",y);
}本回答被网友采纳
第3个回答  2012-10-11
Line 8 这个赋值语句不对。追问

为什么??

追答

很明显。
b2=(x-b2*100)/10;

你这语句也太奇葩了,b2根本就没有值,它是一个很奇怪的数,结果出来个负的当然很正常。你可以尝试以下代码:
#include
main{
int b;
cout<<b;
return 0;
}
然后运行这段程序,看看什么结果。大概是一段乱七八糟的东西。

不知道你这句是怎么想的。
一般都会是b2:=x div 10 mod 10;
C的话大概就是b2=x /10%10;
我是用Pascal的,C仅限于能看懂,写出来也不一定对。

本回答被提问者采纳

c语言编程——求100-900间的无暇素数,我写的程序哪里出问题了?求大神指...
首先,是没分清break和continue的区别。这个是只输出两个数的原因。然后,是输出的n不是原来的数,题主对n做了取逆序数,输出的是逆序数。这个是出现大于900的原因。最后,题主本身的对遍历条件n做了操作,导致循环本身也有问题。建议题主,先理清逻辑,重写下。

C语言中如何判断一个数的位数?
include <stdio.h>void main(){void num(int a);long a;scanf("%ld",&a);num( a);}void num(int a){ long b=0;int i;for(i=0;a>0;a\/=10,i++){b=(b*10)+a%10;}printf("%d位的,逆序数=%ld\\n",i,b); }具体如下:1、简介C语言是一门通用计算机编程语言,应用广泛。

相似回答