C中的Else if语句未按预期工作
下面是我的程序,我正试图在visual studio上运行它,它不断给我一个错误C中的Else if语句未按预期工作,c,if-statement,C,If Statement,下面是我的程序,我正试图在visual studio上运行它,它不断给我一个错误如果不匹配if则非法 我相信它是想告诉我我的else与我的if不匹配,但它确实匹配。下面是我的代码;有人可以运行它,让我知道问题是什么,这样我以后就不会重复了吗 /* counting number of students that pass*/ #include <stdio.h> main() { int pass, fail, grade; printf(" This progra
如果不匹配if则非法
我相信它是想告诉我我的else
与我的if
不匹配,但它确实匹配。下面是我的代码;有人可以运行它,让我知道问题是什么,这样我以后就不会重复了吗
/* counting number of students that pass*/
#include <stdio.h>
main()
{
int pass, fail, grade;
printf(" This program tells you total number of students that passed\n Enter -1 to finish the program");
pass = 0;
fail = 0;
grade = 0;
while (grade != -1) { /* Enter -1 to finish the while loop*/
printf("Enter the grade of the student, 1 is pass, 2 is fail, -1 finishes the program\n");
scanf_s("%d", &grade);
if (grade == 1)
printf("The student passed\n");
pass = pass + 1; /* Add 1 to the pass*/
else if (grade == 2)
printf("The student failed\n");
fail = fail + 1; /*Add 1 to fail */
else
printf("You have entered an invalid number, please try again\n");
}
if (pass > 8)
printf("More than 8 students passed; raise tuition fees\n");
getchar();
}
/*计算通过考试的学生人数*/
#包括
main()
{
int合格、不合格、等级;
printf(“此程序告诉您通过\n输入-1以完成程序的学生总数”);
通过=0;
失败=0;
等级=0;
while(grade!=-1){/*输入-1以完成while循环*/
printf(“输入学生的分数,1为通过,2为不通过,-1完成课程\n”);
scanf_s(“%d”和等级);
如果(等级==1)
printf(“通过考试的学生”);
通过=通过+1;/*将1添加到通过*/
否则,如果(等级==2)
printf(“学生失败\n”);
失败=失败+1;/*将1添加到失败*/
其他的
printf(“您输入的号码无效,请重试\n”);
}
如果(通过>8)
printf(“超过8名学生通过;提高学费”);
getchar();
}
大括号是你的朋友。更改代码段
if (grade == 1)
printf("The student passed\n");
pass = pass + 1; /* Add 1 to the pass*/
else if (grade == 2)
printf("The student failed\n");
fail = fail + 1;
到
牙套是你的朋友。更改代码段
if (grade == 1)
printf("The student passed\n");
pass = pass + 1; /* Add 1 to the pass*/
else if (grade == 2)
printf("The student failed\n");
fail = fail + 1;
到
代码pass=pass+1代码>不在if语句下,多个语句需要大括号:
if (grade == 1)
{
printf("The student passed\n");
pass = pass + 1;
}
else if (grade == 2)
{
printf("The student failed\n");
fail = fail + 1; /*Add 1 to fail */
}
代码pass=pass+1代码>不在if语句下,多个语句需要大括号:
if (grade == 1)
{
printf("The student passed\n");
pass = pass + 1;
}
else if (grade == 2)
{
printf("The student failed\n");
fail = fail + 1; /*Add 1 to fail */
}
语句pass=pass+1除非使用大括号定义if的开始和结束位置,否则代码>将在if之外:
if (grade == 1)
{
printf("The student passed\n");
pass = pass + 1; /* Add 1 to the pass*/
}
else if (grade == 2)
语句pass=pass+1除非使用大括号定义if的开始和结束位置,否则代码>将在if之外:
if (grade == 1)
{
printf("The student passed\n");
pass = pass + 1; /* Add 1 to the pass*/
}
else if (grade == 2)
大量使用大括号。。。检查scanf
brages的返回值,防止人们穿着裤子被抓住。你应该使用int-main(void)、int-main或其他标准规范,但不要使用main,至少如果这不是C90代码的话。也许阅读这篇文章有助于自由地编写好的代码使用brages。。。检查scanf
brages的返回值,防止人们被裤子绊倒。你应该使用int-main(void)、int-main或其他标准规范,但不要使用main,至少如果这不是C90代码的话。也许阅读这篇文章有助于编写好的代码谢谢你的快速回复,这本书没有教我:)谢谢你的快速回复,这本书没有教我:)