为什么我的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),但结果仍然相同.
两个问题:
(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)
不幸的是,这两个都是常见的问题/错误.如果你提高编译器的警告级别,它可能会帮助你避免其中的一些.