主题:急啊,这怎么做啊!
(1)题的两个数相等的情况我用了while(a!=b)上机输入12,12,45,while似乎没起作用,程序始终在做比较运算!
一、对于求三个数的最大值问题
1、原题答案:
main()
{
int a,b,c,max;
printf("a,b,c=?");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max<b) max=b;
if(max<c) max=c;
printf("the max value=%d",max);
getch();
}
2、按同学们和思路修改后的程序:
main()
{
int a,b,c,max;
printf("a,b,c=?");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b && a>c) max=a;
if(b>a && b>c) max=b;
if(c>a && c>b) max=c;
printf("the max value=%d",max);
getch();
}
算法解释:三个数中的最大值可以分成三种情况:a最大 b最大 c最大,因此可以判断某一个数与另外两个数之间的大小关系确定哪个数是最大值。
语句 if(a>b && a>c) max=a; 的含义为:如果a>b而且a>c则最大值为a. 参见P91。
其中: 运算 && 为逻辑与运算符,表示当两个条件同时成立时。参见教材第88页 5-2逻辑运算符与逻辑表达式(了解三种运算符)
完善性问题:
(1)、上述修改后的程序其实有问题的,即没有考虑到当三个数存在两个数相等的情况,应如何修改程序使其能够解决这一问题?
(2)、对于求四个数的最大值问题,修改上述程序
一、对于求三个数的最大值问题
1、原题答案:
main()
{
int a,b,c,max;
printf("a,b,c=?");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max<b) max=b;
if(max<c) max=c;
printf("the max value=%d",max);
getch();
}
2、按同学们和思路修改后的程序:
main()
{
int a,b,c,max;
printf("a,b,c=?");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b && a>c) max=a;
if(b>a && b>c) max=b;
if(c>a && c>b) max=c;
printf("the max value=%d",max);
getch();
}
算法解释:三个数中的最大值可以分成三种情况:a最大 b最大 c最大,因此可以判断某一个数与另外两个数之间的大小关系确定哪个数是最大值。
语句 if(a>b && a>c) max=a; 的含义为:如果a>b而且a>c则最大值为a. 参见P91。
其中: 运算 && 为逻辑与运算符,表示当两个条件同时成立时。参见教材第88页 5-2逻辑运算符与逻辑表达式(了解三种运算符)
完善性问题:
(1)、上述修改后的程序其实有问题的,即没有考虑到当三个数存在两个数相等的情况,应如何修改程序使其能够解决这一问题?
(2)、对于求四个数的最大值问题,修改上述程序