C++利用if和switch编写输出成绩等级的程序

题目
从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。要求在输入负数时,给出错误提示。
#include<iostream>

using namespace std;
void main()
{
int i,s;
cout<<"请输入考试成绩"<<endl;
cin>>s;
if(s>=0&&s<=59)
i=1;
else if(s>=60&&s<69)
i=2;
else if(s>=70&&s<=79)
i=3;
else if(s>=80&&s<=89)
i=4;
else if(s>=90&&s<=99)
i=5;
switch(i)
{
case 5:cout<<"成绩为等级A"<<endl;break;
case 4:cout<<"成绩为等级B"<<endl;break;
case 3:cout<<"成绩为等级C"<<endl;break;
case 2:cout<<"成绩为等级D"<<endl;break;
case 1:cout<<"成绩为等级E"<<endl;break;
}

}
我错在哪里??

#include<iostream>

using namespace std;
void main()
{
int s;
cout<<"请输入考试成绩"<<endl;
cin>>s;
switch(s/10)
{
case 10:
case 9:cout<<"成绩为等级A"<<endl;break;
case 8:cout<<"成绩为等级B"<<endl;break;
case 7:cout<<"成绩为等级C"<<endl;break;
case 6:cout<<"成绩为等级D"<<endl;break;
case 5:
case 4:
case 3:
case 2:
case 1:cout<<"成绩为等级E"<<endl;break;
default:cout<<"输入有误"<<endl;break;
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-05
switch 是一个开关语句,和case配套使用, 和if else 判断语句差不多, switch 语句是用于多分支语句进行条件判断,比如:

i++;

switch (i)

{

case 1 : P1 = 0xFE; //i =1; 执行P1 = 0XFE;

breK; //执行完成后跳出

case 2 : P1 = 0xFD; //i =2; 执行P1 = 0XFD;

break;

case 3 : P1 = 0xFB; //i =3; 执行P1 = 0XFB;

break;

case 4 : P1 = 0xF7 //i =4; 执行P1 = 0X7E;

break;

default: break; //如果i 不符合以上条件直接跳出不执行任何东西

}

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。[1]

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他使用过Simula和ALGOL,接触过C。他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。以C为背景,以Simula思想为基础,正好符合他的设想。1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。1983年该语言被正式命名为C++。自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增加了新的特征并作了一些修改。第一次修订是在1985年,第二次修订是在1990年,而第三次修订发生在c++的标准化过程中。在20世纪90年代早期,人们开始为C++建立一个标准,并成立了一个ANSI和ISO(Intemational Standards Organization)国际标准化组织的联合标准化委员会。该委员会在1994年1月25曰提出了第一个标准化草案。在这个草案中,委员会在保持Stroustrup最初定义的所有特征的同时,还增加了一些新的特征。

在完成C++标准化的第一个草案后不久,发生了一件事情使得C++标准被极大地扩展了:Alexander stepanov创建了标准模板库(Standard Template Library,STL)。STL不仅功能强大,同时非常优雅,然而,它也是非常庞大的。在通过了第一个草案之后,委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。

委员会于1997年11月14日通过了该标准的最终草案,1998年,C++的ANSI/IS0标准被投入使用。通常,这个版本的C++被认为是标准C++。所有的主流C++编译器都支持这个版本的C++,包括微软的Visual C++和Borland公司的C++Builder。
第2个回答  推荐于2018-03-02
#include<iostream>

using namespace std;
void main()
{
int i,s;
cout<<"请输入考试成绩"<<endl;
cin>>s;
if(s>=0&&s<=59) 
i=1; 
else if(s>=60&&s<69) 
i=2; 
else if(s>=70&&s<=79) 
i=3; 
else if(s>=80&&s<=89) 
i=4; 
else if(s>=90&&s<=100) 
i=5; 
else if (s<0)
i=6;


switch(i)
{
case 5:cout<<"成绩为等级A"<<endl;break;
case 4:cout<<"成绩为等级B"<<endl;break;
case 3:cout<<"成绩为等级C"<<endl;break;
case 2:cout<<"成绩为等级D"<<endl;break;
case 1:cout<<"成绩为等级E"<<endl;break;
case 6:cout<<"不能为负数"<<endl;break;
}

}
请输入考试成绩
-1
不能为负数
Press any key to continue

本回答被网友采纳
第3个回答  2014-04-05
你可以直接在switch下加一个default: cout << "输入有误!";就ok了。
因为在你判断完上面所有的情况后,都不是所要的结果,那么就会自动执行这句话。
第4个回答  2014-04-04
else if(s>=60&&s<69)应该是else if(s>=60&&s<=69)

else if(s>=90&&s<=99)应该是else (s>=90)吧!本回答被提问者采纳
相似回答