#include <stdio.h>
#include<math.h>
int main()
{
printf("Input a,b,c:");
float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
int i;
float n[3]={a,b,c};
for(i=1;i<=3;i++)
{
if(n[i]>n[i+1])
{
t=n[i];
n[i]=n[i+1];
n[i+1]=t;
}
}
if(n[1]+n[2]>n[3]&&n[1]+n[3]>=n[2]&&n[2]+n[3]>=n[1])
{
if(n[1]==n[2]&&n[2]==n[3])
{
printf("等边三角形");
}
else if(n[1]==n[2]&&n[2]!=n[3])
{
if(pow(n[1],2)+pow(n[2],2)==pow(n[3],2))
{
printf("等腰直角三角形");
}
else
{
printf("等腰三角形");
}
}
else if(n[2]==n[3]&&n[2]!=n[1])
{
printf("等腰三角形");
}
else if(n[1]!=n[2]&&n[2]!=n[3])
{
if(pow(n[1],2)+pow(n[2],2)==pow(n[3],2))
{
printf("直角三角形");
}
else
{
printf("一般三角形");
}
}
}
else
{
printf("不是三角形");
}
return 0;
}
你的程序有问题,数组n中数a存在n[0],数b存在数组n的n[1],数c存与数组n的n[2]。你的n[3]超出了数组大小,相当于没有值。因此,你的for循环应该从i=0开始
你输入的时候,3,4,5之间加逗号了吗?
scanf语句中逗号去掉试试
希望对题主有所帮助,可以的话,帮忙点个采纳!