2016-02-18 29 views
-1

我想为所有变量> = 40和< = 100添加一个限制。如果输入与两个条件匹配,则程序将执行。否则它会显示无效..我应该怎么做?如何在多个整数的输入上添加限制?

#include<stdio.h> 

int main() 
{ 
    int s1, s2, s3, s4, s5, avg; 
    printf("\n Enter your Subject Numbers:"); 
    scanf("%d%d%d%d%d", &s1, &s2, &s3, &s4, &s5); 

    avg = (s1+s2+s3+s4+s5)/5; 
    if (avg>=80) 
    { 
     printf("\n Your Grade is : A+"); 
    } 
    else if (avg>=70) 
    { 
     printf("\n Your Grade is : A "); 
    } 
    else if (avg>=60) 
    { 
     printf("\n Your Grade is : A- "); 
    } 
    else if (avg>=50) 
    { 
     printf("\n Your Grade is : B "); 
    } 
    else if (avg>=40) 
    { 
     printf("\n Your Grade is : C "); 
    } 
    else if (avg<40) 
    { 
     printf("\n Your Grade is : F "); 
    } 
    return 0; 
} 
+0

欢迎来到Stack Overflow!我已经编辑了一下你的问题。有人低估了它,可能是因为这是一个相当基本的问题。当询问堆栈溢出时,如果显示你已经尝试过的东西,它会有所帮助。使用以下基本格式可以帮助你:“我试过......,我预计......但发生了什么......”。你在这里展示的努力越多,积极的人就会越多。 –

回答

0

这其实很简单。你需要一个额外的if声明各地代码:

if (avg >= 40 && avg <= 100) 
{ 
    /* Your code here */ 
} 
else 
{ 
    printf("Invalid input."); 
} 

还有一些其他的方式,如把在顶部的独立if (avg >= 100),在底部额外else。但是,你必须重复打印“无效输入”的代码。虽然这不是这样一个非常小的程序中的问题,但它在更大的程序中变得很难看。

请注意,您的情况可能不是avg <= 40。这个案例现在打印出“你的成绩是:F”。对于avg低于0的情况,您可能意味着有“无效输入”。 实际上,最好分别检查每个输入,然后在之前计算平均值。

您可能还想了解C语言中的switch声明。它将为您提供一个更简洁的替代方案,用于陈述这一长列表。
但现在,我建议你专注于验证你的输入。

相关问题