刚学C语言,不知道哪里错了

运行没啥问题,输入的数字和结果显示也是对的,但是提交就显示错了。

img

img

%d之间的空格去掉
printf输出后面加\n

#include <stdio.h>

#define INVALID_TRIANGLE 0
#define ACUTE_TRIANGLE 1
#define OBTUSE_TRIANGLE 2
#define RIGHT_TRIANGLE 3

void swap(int *a, int *b) {
  int t = *a;
  *a = *b;
  *b = t;
}

// sorts a, b, c from small to large.
void sort(int *a, int *b, int *c) {
  if (*a > *b)
    swap(a, b);
  if (*a > *c)
    swap(a, c);
  if (*b > *c)
    swap(b, c);
}

int check_triangle(int a, int b, int c) {
  sort(&a, &b, &c);
  if (a + b <= c)
    return INVALID_TRIANGLE;
  int s = a * a + b * b - c * c;
  if (s > 0)
    return ACUTE_TRIANGLE;
  else if (s < 0)
    return OBTUSE_TRIANGLE;
  else
    return RIGHT_TRIANGLE;
}

int main() {
  int a, b, c;
  scanf("%d %d %d", &a, &b, &c);
  switch (check_triangle(a, b, c)) {
  case INVALID_TRIANGLE:
    printf("不能构成三角形\n");
    break;
  case ACUTE_TRIANGLE:
    printf("能构成锐角三角形\n");
    break;
  case OBTUSE_TRIANGLE:
    printf("能构成钝角三角形\n");
    break;
  case RIGHT_TRIANGLE:
    printf("能构成直角三角形\n");
    break;
  default:
    break;
  }
  return 0;
}

第二个if 后面的逗号什么鬼?

第7行怎么跑出来a,b<=c呢
代码太繁琐,建议先对a,b,c排个顺序,确保最大值小于较小值的和,这样就是三角形了。