为了账号安全,请及时绑定邮箱和手机立即绑定

请问我的代码哪里错了

请问我的代码哪里错了

C C++
沐竹雨 2015-09-08 17:06:07
/*功能:三位数的逆序显示。如输入:234 ;程序编译后结果为:432!*/ #include <stdio.h> int daoxu() { int a,b,c,d,f; printf("请输入一个三位数"); scanf("a=%d",a); if(a<1000) { b=(int)(a/100); c=(int)((a-b*100)/10); c=a-b*100-c*10; printf("原数字百位数为:%d\n;原数字十位数为:%d\n;原数字个位数为:%d\n 。",b,c,d); f=b+c*10+d*100; printf("逆序处理后的数字为:%d\n",f); } else { printf("请输入三位数!"); } return 0; }看图:
查看完整描述

2 回答

?
onemoo

TA贡献883条经验 获得超454个赞

我之前回复意思是:第12行你应该给d赋值的,但是没有。而你定义d的时候也没有提供初值,所以d的值是不确定的。这样你的结果也不会是正确的。这是你代码中的逻辑错误。


好像这个就是你的全部代码!?  这样的话,最后没能生成可执行文件因为你没有定义main函数。 C程序一定是从main函数开始执行(改成别的名字不行),所以应该将"daoxu"改成main。

关于为什么第一次没有错: C源代码要经过编译链接两个过程后才能生成可执行文件。你的第一张图是编译器在编译这个代码,没有不合语法的错误就可以编译通过。生成的是一个"中间过程文件" (VC编译出的后缀是.obj)。随后不同源代码编译出的这些过程文件由链接器链接起来形成最终的可执行文件,这个过程中它会发现你没有定义main函数,最终报错。

上面这些暂时看不懂也没关系,你只要记住一定要定义main函数!

查看完整回答
反对 回复 2015-09-16
?
onemoo

TA贡献883条经验 获得超454个赞

第12行你又对c赋值了

查看完整回答
反对 回复 2015-09-09
  • 2 回答
  • 0 关注
  • 1306 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信