这是用c语言写的整数逆序的代码,用dev c++编译
#include <stdio.h>
int main()
{
int a;
int b =0 ;
int c =0 ;
scanf("%d", &a);
while(a < 0){
c = a % 10;
b = b * 10 + c;
a = a / 10;
}
printf("%d", b);
return 0;
}
我输入初始值 12345 后,得出来的结果如下
我的理解是printf("%d", b);这个代码它最后输出来的结果应该只有54321,但是为什么还有一些其他的数。
在此之前,我跟着teacher写了一个一模一样的代码,但是定义的变量不一样,变量就是图上的,那个文件名是整数逆序,我写的文件名是整数逆序1
为什么编译运行得出是参照以前的代码来的呢?
while(a<0)能输出?
你提供的代码和你的输出界面好像一毛钱关系也没有吧?
所有文件重新编译,就不会运行先前的代码结果出来!或者你把你所有的文件全部先保存一遍,再重新编译就好了
你那几行代码,运行如下
emmm,你是不是没有编译
while(a>0){
}
a<0的话不会执行中间一段代码
修改如下,供参考:
#include <stdio.h>
int main()
{
int a, i=0;
int b = 0;
int c = 0;
scanf("%d", &a);
while (a) { //a < 0 修改
printf("%d\n", c); //增加输出 c
c = a % 10;
b = b * 10 + c;
printf("a=%d, c=%d, b=%d\n", a, c, b); // 输出,看看变化
a = a / 10;
}
printf("%d", b);
return 0;
}