请问一个c语言很基础的问题:有3个数a、b、c,要求按大小顺序把它们输出,为什么我写的有错误,谢谢!

[复制链接]
查看11 | 回复7 | 2011-9-19 01:23:25 | 显示全部楼层 |阅读模式
#includestdio.hintmain(){inta,b,c,t;scanf(\"%d,%d,%d\",if(ab)t=a;a=b;b=t;if(ac)t=a,a=c;c=t;if(bc)t=b,b=c;c=t;printf(\"%d,%d,%d\\n\",a,b,c);return0;}编译的时候下面写:2.obj:errorLNK2005:_mainalreadydefinedin1.objDebug/1.exe:fatalerrorLNK1169:oneormoremultiplydefinedsymbolsfound
回复

使用道具 举报

千问 | 2011-9-19 01:23:25 | 显示全部楼层
一楼的正确,但是还有个错误我得给你指正:每个if后面的三个语句要用大括号括起来,不然输出就是错的!if(ab)t=a;a=b;b=t;改成if(ab){t=a;a=b;b=t;}后面的都要这样!追问可是我重新编译了还是这样的,怎么回事呢?
回复

使用道具 举报

千问 | 2011-9-19 01:23:25 | 显示全部楼层
你先关闭软件,重新建一个项目或工程,然后再看看,如果你以前可以正确运行程序,那么重新建一个项目或工程就应该行,我在我机子上运行了,可以
回复

使用道具 举报

千问 | 2011-9-19 01:23:25 | 显示全部楼层
这种错误,一看就是VC报的。重新建项目,重新编译试试,VC有时代码是对的,设置没对也会报错的
回复

使用道具 举报

千问 | 2011-9-19 01:23:25 | 显示全部楼层
修改处已改正#includestdio.hintmain(){inta,b,c,t;scanf(\"%d,%d,%d\",if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;//,----;if(bc)t=b;b=c;c=t;//,----;printf(\"%d,%d,%d\\n\",a,b,c);return0;}
回复

使用道具 举报

千问 | 2011-9-19 01:23:25 | 显示全部楼层
t=a,a=c;c=t;这里错了,把逗号改为分号
回复

使用道具 举报

千问 | 2011-9-19 01:23:25 | 显示全部楼层
首先你的程序写的是从小到大排列,你自己题目就没看清楚。第二点if(bc)t=b;这里是分号不是逗号。再运行一下应该没什么问题了。
回复

使用道具 举报

千问 | 2011-9-19 01:23:25 | 显示全部楼层
你的源文件是没什么大问题的,肯定是你还打开了另一个源文件“alreadydefinedin1.obj”这句话不是在提醒你嘛,1.obj的源文件关掉,或者删掉,再编译就没问题了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行