猿问

请问我的代码哪里错了

/*功能:三位数的逆序显示。如输入: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;

}

看图:

http://img.mukewang.com/55eea4ef0001135e13660738.jpg

沐竹雨
浏览 1307回答 2
2回答

onemoo

我之前回复意思是:第12行你应该给d赋值的,但是没有。而你定义d的时候也没有提供初值,所以d的值是不确定的。这样你的结果也不会是正确的。这是你代码中的逻辑错误。好像这个就是你的全部代码!?  这样的话,最后没能生成可执行文件因为你没有定义main函数。 C程序一定是从main函数开始执行(改成别的名字不行),所以应该将"daoxu"改成main。关于为什么第一次没有错: C源代码要经过编译和链接两个过程后才能生成可执行文件。你的第一张图是编译器在编译这个代码,没有不合语法的错误就可以编译通过。生成的是一个"中间过程文件" (VC编译出的后缀是.obj)。随后不同源代码编译出的这些过程文件由链接器链接起来形成最终的可执行文件,这个过程中它会发现你没有定义main函数,最终报错。上面这些暂时看不懂也没关系,你只要记住一定要定义main函数!

onemoo

第12行你又对c赋值了
随时随地看视频慕课网APP
我要回答