这个c程序哪里错了?编译器 告诉我scanf函数错了,可是他没错呀
#include<stdio.h>
int main(void)
{
int a, b, c; //定义三角形的三边
printf("请输入三角形三边的边长(边长必须为整数).\n");
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
if (a + b > c&&a + c > b&&b + c > a)
{
if (a = b || a = c || b = c)
{
printf("此三角形为等腰三角形.\n");
else
if (a = b = c)
printf("此三角形为等边三角形.\n");
}
printf("此三角形为普通三角形.\n");
}
printf("这三条边无法组成三角形.\n");
return 0;
} 展开
代码需修改为以下,主要有几个问题:
1、main函数的参数不对
2、第一层if和else的关系不对
3、内层的if、else、{和}的匹配不对,所以编译器会报错
4、应该先判断等边三角形,原来的逻辑顺序不对
5、判断两个变量相等应该用==,而不是=
写了这么多,还改了代码。望采纳!
//判断三角形
#include <stdio.h>
int main(int argc, char **argv)
{
int a, b, c; //定义三角形的三边
printf("请输入三角形三边的边长(边长必须为整数).\n");
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
if ( a + b > c && a + c > b && b + c > a )
{
if ( a == b && b == c )
{
printf("此三角形为等边三角形.\n");
}
else if ( a == b || a == c || b == c )
{
printf("此三角形为等腰三角形.\n");
}
else
{
printf("此三角形为普通三角形.\n");
}
}
else
{
printf("这三条边无法组成三角形.\n");
}
return 0;
}
如果我想在结尾设置个 询问 就是问你 是否继续? 是Y 否N
如果选 是 就继续 从头开始 如果选 否 就退出程序 该怎么弄?
//判断三角形
#include
int main(int argc, char **argv)
{
int a, b, c; //定义三角形的三边
char prompt;
while ( 1 )
{
printf("请输入三角形三边的边长(边长必须为整数).\n");
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
if ( a + b > c && a + c > b && b + c > a )
{
if ( a == b && b == c )
{
printf("此三角形为等边三角形.\n");
}
else if ( a == b || a == c || b == c )
{
printf("此三角形为等腰三角形.\n");
}
else
{
printf("此三角形为普通三角形.\n");
}
}
else
{
printf("这三条边无法组成三角形.\n");
}
printf("是否继续? 是Y 否N\n");
scanf("%c", &prompt);
if ( 'N' == prompt || 'n' == prompt )
{
break;
}
};
return 0;
}