if-else内开关盒c语言

if-else内开关盒c语言,c,switch-statement,C,Switch Statement,我在试着切换,如果还有其他的话。我不知道我错过了什么,但这不管用 这是我的密码: include<stdio.h> include<conio.h> int main() { clrscr(); int grade; printf("Input Grade"); scanf("%d",&grade); switch(grade<101) { case 1: if (grade>=95)

我在试着切换,如果还有其他的话。我不知道我错过了什么,但这不管用

这是我的密码:

include<stdio.h>
include<conio.h>

int main()
{
  clrscr();

  int grade;

  printf("Input Grade");
  scanf("%d",&grade);

  switch(grade<101)
  {
    case 1:
      if (grade>=95)
        printf("A+");
      else
        printf("Invalid");
    break;
    case 2:
      if (grade>=85)
        printf("A");
      else
        printf("Invalid");
      break;
    default:
      printf("Invalid");
  }
getch();
}
所以我不知道是怎么回事。只有第一个案例有效,当我输入一个小于95‘a’的数字时,结果不是。请帮助我。

如果必须使用switch,则应将If-else语句带到开关之外,以便切换到正确的整数值。大概是这样的:

int state = 0;
if ( grade < 101 &&‌ grade >= 95 )
  state = 1;
else if ( grade < 101 && grade >= 85 )
  state = 2;

switch state {
   case 1:
      printf("A+");
   break;
   case 2:
      printf("A");
   break;
   default:
      printf("invalid");
   break;
}

您可以使用switch语句以以下方式表达这一点,尽管您可能不想这样做:

switch(grade)
{
  case 100:
  case  99:
  case  98:
  case  97:
  case  96:
  case  95:
      printf("A+");
  break;
  case  94:
  case  93:
  case  92:
  case  91:
  case  90:
  case  89:
  case  88:
  case  87:
  case  86:
  case  85:
      printf("A");
  break;
  default:
      printf("Invalid");
      //or an if statement if more options are required.
  break;
}

这不是switch语句的工作方式。grade@sudomakeinstall2地球上有什么与C++有关?LwitgGrADED似乎是为80年代的原始方言C++编写代码,特别是对于微软DOS操作系统来说,它实际上不再存在。为什么不编写标准C++的代码,在1998中介绍,这是20年前的事了?然后你就可以在工作中使用它,并通过事业赚钱。学习C++,而不是你现在所拥有的任何过时资源。注意到你被标记为C和C++。是哪一个?移除错误的标签。我上面的建议适用于任何一种情况。