|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include "stdio.h"
int main()
{
int max(int x,int y, int z);
int a ,b ,c ,d ;
scanf_s("%d.%d,%d", &a, &b, &c);
d = max(a, b, c);
printf("max=%d", d);
return 0;
}
int max(int x, int y, int z)
{
int w;
if ((x > y) & (x > z))
{
w = x;
}
if ((y > x) &( y > z))
{
w = y;
}
if ((z > x )&( z > y))
{
w = z;
}
return w;
}
每次输入三个数,最后max都等于第一个数字,求问这是为什么?改怎么修改呢?
本帖最后由 jackz007 于 2020-11-18 17:48 编辑
逻辑运算符写错了
int max(int x, int y, int z)
{
int w ;
if ((x > y) & & (x > z))
{
w = x;
}
if ((y > x) & & (y > z))
{
w = y;
}
if ((z > x) & & (z > y))
{
w = z;
}
return w;
}
帮楼主简化了一下代码:
- #include <stdio.h>
- int max(int x , int y , int z)
- {
- int m = x ;
- if(y > m) m = y ;
- if(z > m) m = z ;
- return m ;
- }
- int main(void)
- {
- int a , b , c ;
- scanf_s("%d%d%d" , & a , & b , & c) ;
- printf("max = %d\n" , max(a , b , c)) ;
- }
复制代码
|
|