简单c语言出现的问题在哪里

[复制链接]
查看11 | 回复5 | 2010-11-15 15:43:23 | 显示全部楼层 |阅读模式
#include

int main()

{ double a,b,c;int max;max=0; printf("enter:");
scanf("%d%d%d",&a,&b,&c);

if(a>b){

max=a;

}



else if(b>c){

max=b;

}

else max=c;



printf("%d",max);



getchar();
getchar();



return 0;

}

输出的数很大

回复

使用道具 举报

千问 | 2010-11-15 15:43:23 | 显示全部楼层
你这个一共大体的有两个错误,第一你应该把max也定义成整形,当然输出的东西也多相应的是浮点型,其实这个不是主要的错误,第二个错误才是你的错误,你的scanf函数你不太熟悉,scanf("%d%d%d",&a,&b,&c);没个数输入后必需点击回车,表示这个数输入完成,接着输入下一个,输入完成也点击回车scanf("%d,%d,%d",&a,&b,&c);当是这个形式的时候,你在后面键盘键入的数应该有逗号隔开,当输入完三个数后点击回车,你认真去看一下scanf函数的用法吧,最后你整个函数的最后那个else的部分我觉得你的打印函数应该是跨起来的吧
回复

使用道具 举报

千问 | 2010-11-15 15:43:23 | 显示全部楼层
1.你的程序缩进很不清晰2.下次注意了,你的abc都是双精度的,读入怎么可以用%d?3..貌似你的意思是要比较3个int型数据的大小,那么你将abc的定义改为longlong,然后读入用%ld4.max的定义也要改。。。还有printf里也要用%ld5.你的算法也有问题,我一般用以下语句比较3个数大小max=a;if(b>max) m
回复

使用道具 举报

千问 | 2010-11-15 15:43:23 | 显示全部楼层
#includeint main(){double a,b,c; double max; max=0.0;
printf("enter:");
scanf("%lf%lf%lf",&a,&b,&c);
if(a>b) {max=a;

回复

使用道具 举报

千问 | 2010-11-15 15:43:23 | 显示全部楼层
LZ定义的abc是double所以 scanf函数里的应该是%lf而不是%d%d是int型的
回复

使用道具 举报

千问 | 2010-11-15 15:43:23 | 显示全部楼层
试试把MAX也定义为双精度?
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行