#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);
}
为什么??
追答很明显。
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语言是一门通用计算机编程语言,应用广泛。