获取错误:“变量不能出现在常量表达式中”

时间:2016-12-18 15:17:26

标签: c if-statement switch-statement

我已经在C-Free5.0中制作了基本代码,如果与 if 语句中的相同,则表示良好。但是当我使用一个开关时它会给出错误:'per'不能出现在Constant-expression中,为什么它会给出错误?

#include<stdio.h>
#include<conio.h>
int main()
{
    int urdu=134;
    int eng=112;
    int isl=72;
    int ps=58;
    int maths=137;
    int phy=128;
    int chem=120;
    int bio=115;

    int total=(urdu+eng+isl+ps+maths+phy+chem+bio);
    int per=(total*100)/1050;

    printf("Urdu=               %d\n", urdu);
    printf("English=            %d\n", eng);
    printf("Islmiyat=           %d\n", isl);
    printf("Pakistan Studies=   %d\n", ps);
    printf("Mathematics=        %d\n", maths);
    printf("Physics=            %d\n", phy);
    printf("Chemistery=         %d\n", chem);
    printf("Biology=            %d\n\n", bio);

    printf("Percentage:         %d\n",per);

    switch(per)
    {
        case (per>80):
        printf("A+");

        case (per>70):
        printf("A");
    }
    getch();
}

1 个答案:

答案 0 :(得分:4)

switch-case是一系列ifs检查变量的相等到一系列常量的简写。您无法按照指定的方式使用它。相反,您可以使用普通的旧if语句:

if (per > 80) {
    printf("A+");
else if (per > 70) {
    printf("A");
}