还是if语句。。。。
#include <stdio.h>main ()
{
int a,b,c,d,max,min;
printf("输入三个数: \n");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
if(max<d)
max=d;
else
if(c<d) 为什么这个就不执行了 把这个换成 if就可以了
d=5;
printf("max=%d\nd=%d\n",max,d);
}
#include <stdio.h>
main ()
{
int a,b,c,max,min;
printf("输入三个数: \n");
scanf("%d%d%d",&a,&b,&c);
if(a<b)
{
max=b;
min=a;
}
else
{
max=a;
min=b;
}
if(max<c)
max=c;
else
if(min>c) 这个程序的这里为什么又可以执行
min=c;
printf("max=%d\nmin=%d\n",max,min);
}
求解{:5_96:}
你上面的代码写规范就是#include <stdio.h>
int main ()
{
int a,b,c,d,max,min;
printf("输入三个数: \n");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=a;
if(max<b)
{
max=b;
}
if(max<c)
{
max=c;
}
if(max<d)//如果max<d成立就不会执行else的全部语句
{
max=d;
}
else
{
if(c<d) //如果max>d 在判断 c是否<d 如果成立就执行 d = 5;
//你输入 6 1 2 3 输出就是 6 和 5了
{
d=5;
}
}
printf("max=%d\nd=%d\n",max,d);
return 0;
}
下面那个你在自己看看吧 写的好复杂,第一个程序的目的没看懂,刚开始还是找出abcd的最大值,怎么后来又给d赋值了。完全看不懂第一个程序的目的。
第二个程序是返回abc中的最大值和最小值。不过编的好复杂,直接用数组和循环就可以了. 这样会按照顺序进行下去的 写的有点繁琐额,,,,,,应该跟输入的数有关吧{:1_1:}{:1_1:}{:1_1:} 写清楚点比较好, 逻辑好乱,反正if和else是就近配对原则,判断三个数的大小,只需要把a分别和b、c比较的结果与b、c比较即可。
第一个程序,有问题!你这个是要输入3个数呢,还是4个数。如果是4个数,最后一句d还要赋值5干嘛。
另外如果你是输入三个数,“if(max<d)”d没有赋任何值呀。不知道楼主想干嘛 请楼主把你做的程序的功能告诉我 3112793 发表于 2013-10-7 12:50 static/image/common/back.gif
写的好复杂,第一个程序的目的没看懂,刚开始还是找出abcd的最大值,怎么后来又给d赋值了。完全看不懂第一个 ...
刚开始学呢
福禄娃娃 发表于 2013-10-8 23:12 static/image/common/back.gif
逻辑好乱,反正if和else是就近配对原则,判断三个数的大小,只需要把a分别和b、c比较的结果与b、c比较即可。 ...
现在懂了 ,
谢谢
页:
[1]