C语言,帮忙看一下哪里错了?

如题所述

错误有以下几处:
1、第二行,改为:int GC(int a,int b,int c)。
2、第四行和第五行,去掉。
3 、第六行,改为:
if(a==b&&b&&c)printf("为等边三角形\n");
4、第七行改为:return 1;
其他不用改,应该就好了。
如果还不行请留言。追问

感谢大佬

追答

if(a==b&&b==c)printf("为等边三角形\n");

此处写错了,对不起😭。

追问

麻烦了 大佬

麻烦大佬在帮我看一看 我哪里错了

追答

错误点有三个:
1、switch(表达式)
switch后面括号里只能放“表达式”,我们知道表达式只能有一个值。
而你的switch(a,b,c)会被系统解释为“逗号表达式”,而逗号表达式的值只是最后那个逗号后面的值(本例中是等于c),所以,switch(a,b,c)执行的时候相当于:
switch(c)
这样的运行不是你想要的结果吧?
2、关于case 1:的执行,就是程序先比较switch后面的表达式的值(c)是否等于case后面的值(1),即c是否等于1。如果相等,则执行冒号后面的语句,此处如果c的值是1,则执行后面的a==b==c及下一句打印;如果≠1,则越过后面的语句,直接再去比较下一个case语句。
我想判断c是否等于1,也不是你的本意吧?
3、

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-25
错误1:switch小括号内只能有一个变量
错误二,判断相等用a==b==c.不是一个=,一个=是赋值语句。
第2个回答  2019-10-24
GC里面不需要定义abc
switch 语句的格式错了追问

可以帮我改一下不

追答

不用switch吧?

int GC(int a, int b, int c) {
if ((a == b) && (a == c))
printf("l");
return 0;
}

追问

嗯嗯感谢

第3个回答  2019-10-24

#include<stdio.h>

int a,b,c;


int GC(){

if(a==b==c){

printf("等边三角形\n");

} else printf("非等边三角形\n");


}

 int main(){

printf("请输入abc的值");

scanf("%d%d%d",&a,&b,&c);

GC();

return 0;

 }

我猜你是这意思··

追问

感谢

第4个回答  2019-10-25
switch语句严重出错,请再看看书。
请将5、6、7三行改为:
if(a==b&&b==c)printf("等边三角形\n");
else printf("非等边三角形\n");本回答被提问者采纳
相似回答