程序不报错,输入 3 4 5,数据运行错误

img

img

img


#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语句中逗号去掉试试

img

希望对题主有所帮助,可以的话,帮忙点个采纳!