急!请问下各位哥哥姐姐啊,这题C语言怎么做,我怎么编都是错的...

输入a,b,c三个整数,求最小值:

main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if((a>b)&&(a>c))
if(b<c)
printf("min=%d\n",b);
else
printf("min=%d\n",c);
if((a<b)&&(a<c))
printf("min=%d\n",a);

}

我输入1,2,3或2,1,3都是对的,但是输入2,3,1就错了,请问我错在哪里啦,谢谢啊....

1,2,3对应if((a<b)&&(a<c))
printf("min=%d\n",a);是对的很好理解,但是2,1,3都是对的我就觉得奇怪
至于后面那个错了,我觉得你应该
scanf("%d%d%d",&a,&b,&c);
if((a>b)&&(a>c))
{
if(b<c)
printf("min=%d\n",b);
else
printf("min=%d\n",c);
}
if((a<b)&&(a<c))
printf("min=%d\n",a);
if (b<c) /*A既不是最大,也不是最小,那肯定是中间,那么剩下的两个数一比较,谁小,谁就最小*/
printf("min=%d\n",b);
else
printf("min=%d\n",c);

那个,我认为你在用if的时候最好把后面对应同一个IF的语句都用{},不然编译器可能会搞错
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-14
你刚好这个231就是你没有考虑到的情况哦!你带进去看下
main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);//a=2,b=3;c=1
if((a>b)&&(a>c))//a=2<b=3的不满足条件所以不会执行此语句
if(b<c)
printf("min=%d\n",b);
else
printf("min=%d\n",c);
if((a<b)&&(a<c))//a=2<b=3;但是a=2>c=1的,也不会执行的。
printf("min=%d\n",a);

}
你这样写很复杂,情况有很多种哦。考虑下用其他方法吧!
第2个回答  2010-11-14
考虑不够全面。少了(a>b)&(a<c) (a<b)&(a>c)两种情况
输入2,3,1,那么就是a=2,b=3,c=1。
main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if((a>b)&&(a>c))
{if(b<c)
printf("min=%d\n",b);
else
printf("min=%d\n",c);}
if((a<b)&&(a<c))
printf("min=%d\n",a);
if((a>b)&&(a<c))
printf("min=%d\n",b);
if((a<b)&&(a>c))
printf("min=%d\n",c);
}
第3个回答  2010-11-14
(a>b)&&(a>c)与(a<b)&&(a<c)能包扩a,b,c之间的所有情况吗?不能!!!*(a>b)&&(a>c)的补集是什么???是(a>=b)||(a<=c)吧?你那样考虑,情况不完全,怎么能对呢??
main()
{
int a,b,c;
scanf(

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网