如果 - 其他声明不会奏效

Cag*_*tay 0 c if-statement

为什么我的if else if if else语句不起作用?

   printf ("Enter 1 for midtern1 sorting , 2 for midterm2 sorting , 3 for final sorting\n");
   scanf ("%d",sort);

   if (sort=1){
      midterm1(x);
      for (i=9;i>=0;i--){
      printf ("%s %s %d\n",x[i].name,x[i].surname,x[i].mid1);}}
   else if (sort=2){
        midterm2(x);
        for (i=9;i>=0;i--){
        printf ("%s %s %d\n",x[i].name,x[i].surname,x[i].mid2);}}
   else if (sort=3){
        final(x);
        for (i=9;i>=0;i--){
        printf ("%s %s %d\n",x[i].name,x[i].surname,x[i].final);}}
Run Code Online (Sandbox Code Playgroud)

我试过(sort == 1),(sort <= 1),但结果仍然相同.

Lev*_*von 7

两个问题:

(1)而不是

 if (sort=1)
Run Code Online (Sandbox Code Playgroud)

你可能想要的

 if (sort==1)
Run Code Online (Sandbox Code Playgroud)

类似于你的所有if陈述.提醒,'='是赋值,'=='用于布尔比较.

(2)

scanf ("%d", sort);
             ^
Run Code Online (Sandbox Code Playgroud)

需求 &

scanf ("%d", &sort);
             ^
Run Code Online (Sandbox Code Playgroud)

不幸的是,这两个都是常见的问题/错误.如果你提高编译器的警告级别,它可能会帮助你避免其中的一些.