入门发问 输入三个数 输出最大值 这样写有啥问题吗 为什么输入三个数之后无法正确判断最大的数

int a, b, c;
int max;
scanf("%d,%d,%d\n", &a, &b, &c);
max =( a > b && b > c) ? a :( a > c && c > b) ? a :( b > a && a > c )? b :( b > c && c > a) ? b :( c > a && a> b) ? c :( c > b && b > a) ? c : 1;
printf("max=%d\n", max);

代码示例和错误分析如下,望采纳。


在c语言中,如果要输入三个数并输出最大值,您可以使用以下代码来实现:

int a, b, c;
int max;
scanf("%d,%d,%d\n", &a, &b, &c);

if (a > b && a > c) {
    max = a;
} else if (b > a && b > c) {
    max = b;
} else {
    max = c;
}

printf("max=%d\n", max);

您的代码的问题:

  • 使用的是逗号分隔符,而不是空格分隔符。请更改为scanf("%d %d %d\n", &a, &b, &c);
  • 条件判断中使用了不正确的逻辑。您的代码中,输入1,2,3时,输出为max=2,这是不正确的。
  • 使用了三目运算符,这可能会使代码难以阅读和理解。在c语言中,通常使用if-else语句来实现条件判断。