这是C程序设计的一个习题,刚开始学C语言, 有点不理解啊,程序可以运行但结果不对,逻辑不知道哪出错了
max函数里if是想判断两个条件都满足,那么c语言的和表示是两个&,即&&
接着是逻辑,判断三个数大小只需要两个判断,可以先初始化最大值w = x,接着x和y的大小,取x和y的最大值在和z判断即可得出最大值
可以这么写
int max(int x, int y, int z)
{
int w = x; //初始化w = x,w表示最大者
if (x < y) // 若满足该条件说明x<y,xy最大者为x,最大者w变为y
{
w = y;
} // 若不满足第一个if条件,说明最大者w为x无需改变w
if ( w < z) // 若满足第2个if条件,说明最大者w为z需改变w=z
{
w = z;
} //若不满足第一个if条件,说明最大者w为x无需改变w
return 0;
}
max函数中的逻辑有问题,与是&&,正确写法y>x>z的话应该是y>x&&y>z
下面是我实现这个问题的代码请参考:
#include <stdio.h>
int max(int x, int y, int z);
int main(int argc, const char *argv[])
{
int max(int x, int y, int z);
int a, b, c, q;
scanf("%d, %d, %d", &a, &b, &c);
while((getchar()!='\n'));
q = max(a, b, c);
printf("max=%d\n", q);
return 0;
}
int max(int x, int y, int z)
{
int w=0;
if (x > y ){
if(x>z){
w=x;
}
else{
w=z;
}
}else if(y>z){
w=y;
}else{
w=z;
}
return w;
}
max函数里面的判断不怎么对
max函数 逻辑语句有问题