c程序编译问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 23:35:28
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c,max;
while(1)
{
clrscr();
printf("\nPlease Enter 3 integers:\na=");
scanf("%d",&a);
printf("\nb=");
scanf("%d",&b);
if(b==a)
{
printf("\nThe same to a.Press Enter to reEnter.");
continue;
}
else
{
printf("\nc=");
scanf("%d",&c);
if(c==a)
{
printf("\nThe same to a.");
continue;
}
else if(c==b)
{
printf("\nThe same to b.");
continue;
}
}
break;
}
max=a>c?{a>b?a:b;}:{c>b?c:b;};
printf("\n\nThe maximal number is %d.",max);
}

以上一段编译时,编译器提示错误在
“max=a>c?{

max=a>c?{a>b?a:b;}:{c>b?c:b;};
这句错了吧
应该是
max=a>c?(a>b?a:b):(c>b?c:b);
分号不是放在一个表达式后面的,而是放在一个语句后面的,所以里面不能加分号,而且不能用大括句,只能用小括句,表达式运算无论有多少个括号都应该用小的比如说((a+b)×(c-d))

{}是语句的集合,不能作为表达式

a?b:c
这里abc都要求是表达式,所以不能用{}

max=a>c?{a>b?a:b;}:{c>b?c:b;};
这句话中为什麼在中间还要“;”符号啊?
;表示一行语句结束,那这句话就只是读到a>b?a:b;就结束了,故出现错误。

以上一段编译时,编译器提示错误在
“max=a>c?{a>b?a:b;}:{c>b?c:b;};”一句中“a>b”的a上,
错误内容为:expression syntax in function main

我找了很久都未找出原因,望得到指点,谢谢
问题补充:不好意思,该程序是要求输入三个不相等的数,并输出最大的一个,

你要改成这样:
max=a>c?(a>b?a:b):c;
你不可以用花括号!而且里面不能加分号,否则就是另外的多个语句了