一个很简单的问题却绊住了

sweetswing 2020-01-10 10:19:31
输入三个整数,找出最大的一个。



我是这样做的,编译通过了



真正输入数据后,却是这个鬼样子

只能输入一个数字,然后就出来一个最大,而且不论我输入什么数字,最大都是这个



这不科学呀
...全文
46 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sweetswing 2020-01-13
  • 打赏
  • 举报
回复


我换了一种方法,也可以
三个数可以这样比较,4个数,或者8个数呢?有没有更好的办法?用排序法?


还有,我之前写scanf("%d,%d,%d",&a,&b,&c)
是错的,d后面应该没有逗号的
sweetswing 2020-01-13
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
建议先学习下基本的C语言赋值的语法吧

max = a>=b? a:b;
max = c>=max? c:max;

我太糊涂了

引用 5 楼 柒贰伍玖 的回复:

#include "stdio.h"
#include "stdlib.h"
//#include<windows.h>

int main()
{
int a, b, c, max;
scanf("%d,%d,%d",&a, &b, &c);
(a >= b) ? (max = a) : (max = b);
(max >= c) ? (max = max) : (max = c);
printf("\r\nmax is:%d\r\n",max);
system("pause");
}


输入输出:
1,2,3

max is:3
请按任意键继续. . .
你说的非常棒,启发很大
柒贰伍玖 2020-01-10
  • 打赏
  • 举报
回复

#include "stdio.h"
#include "stdlib.h"
//#include<windows.h>

int main()
{
	int a, b, c, max;
	scanf("%d,%d,%d",&a, &b, &c);
	(a >= b) ? (max = a) : (max = b);
	(max >= c) ? (max = max) : (max = c);
	printf("\r\nmax is:%d\r\n",max);
	system("pause");
}
输入输出: 1,2,3 max is:3 请按任意键继续. . .
柒贰伍玖 2020-01-10
  • 打赏
  • 举报
回复
scanf("%d,%d,%d",&a, &b, &c); 你的输入格式里面 是用“,”分开的,你的数据输入也需要逗号隔开 例如输入:1,2,3, 三目运算符这样用没有语法错误,但是不是这样用的 应该是 max = (a > b) ? a : b;
super_admi 2020-01-10
  • 打赏
  • 举报
回复
从语法上说,虽然楼主这样写很啰嗦,但也是可以的,没毛病。
等于号赋值,会返回赋值后的值。

引用 1 楼 zgl7903 的回复:
建议先学习下基本的C语言赋值的语法吧

max = a>=b? a:b;
max = c>=max? c:max;


引用 2 楼 qq_1457346882 的回复:
三目运算符不是这么用的啊,变量=表达式?成立的取值:不成立的取值
qq_1457346882 2020-01-10
  • 打赏
  • 举报
回复
三目运算符不是这么用的啊,变量=表达式?成立的取值:不成立的取值
zgl7903 2020-01-10
  • 打赏
  • 举报
回复
建议先学习下基本的C语言赋值的语法吧

max = a>=b? a:b;
max = c>=max? c:max;

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧