关于else位置的错误 帮我改下~
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/18 17:56:57
关于else位置的错误 帮我改下~
int max(int x,int y,int z)
{
int h;
if (x>y);
if (x>z) h=x
else h=z;
else /*此处出现misplaced else in function max错误*/
if (y>z) h=y;
else h=z;
return (h);
}
怎么回事~
要怎么改~
int max(int x,int y,int z)
{
int h;
if (x>y);
if (x>z) h=x
else h=z;
else /*此处出现misplaced else in function max错误*/
if (y>z) h=y;
else h=z;
return (h);
}
怎么回事~
要怎么改~
你这程序怎么该有分号的地方没有分号,不该有的地方又有分号?
一条判断语句下如果要执行多行语句,则多行语句必须放在一个{ }内形成一个语句块.如果没有{ },则编译器认为该判断条件下只包括一个语句.
所以在写语句的时候,出于谨慎,最好写成
if()
{
}
else
{
}
这样比较不会出问题.
你这个程序可以这么写
int max(int x,int y,int z)
{
int h=x;
if(hz) {h=x;}//此处花括号可省略
else {h=z;}//此处花括号可省略
}
else
{
if(y>z) {h=y;}//此处花括号可省略
else {h=z;}//此处花括号可省略
}
return(h);
}
所以你的程序是因为if(x>y)后及才出错else后少了一个花括号,使得if(x>y)和你认为应该与之对应的else不再对应.编译器把else h=z;与if(x>y)认为是对应关系了,后面的else就认为是多余报错了.
一条判断语句下如果要执行多行语句,则多行语句必须放在一个{ }内形成一个语句块.如果没有{ },则编译器认为该判断条件下只包括一个语句.
所以在写语句的时候,出于谨慎,最好写成
if()
{
}
else
{
}
这样比较不会出问题.
你这个程序可以这么写
int max(int x,int y,int z)
{
int h=x;
if(hz) {h=x;}//此处花括号可省略
else {h=z;}//此处花括号可省略
}
else
{
if(y>z) {h=y;}//此处花括号可省略
else {h=z;}//此处花括号可省略
}
return(h);
}
所以你的程序是因为if(x>y)后及才出错else后少了一个花括号,使得if(x>y)和你认为应该与之对应的else不再对应.编译器把else h=z;与if(x>y)认为是对应关系了,后面的else就认为是多余报错了.