}
}
return0;
}
编程求一元二次方程ax2+bx+c=0的根。
包括以下判断和结果,若输入a=0,给出提示;△=b2-4ac,若△>0,输出两个不等的实根;
若△=0,输出两个相等实根;若△<0,输出两个复数根。
【要求】
(1)参照主教材的例2.8编写源程序并调试运行,并记录结果。
比较与例2.8的不同之处。
输入
结果
a=0b=0c=4
二次项系数为0,不是一元二次方程
a=0b=2c=4
二次项系数为0,不是一元二次方程
a=1b=2c=0
方程有两个不同实根x1=0x2=-2
a=2b=5c=1
方程有两个不同实根x1=-0.219224x2=-2.28079
(2)思考if–else嵌套使用时的注意事项是什么?
If和else“就近配对”,即相距最近且还没配对的一对if和else首先配对。
3.编写程序:
输入一门课程的成绩,若高于90分,输出“A grade”;若高于80分而低于90分,输出“Bgrade”;若高于70分而低于80分,输出“C grade”;
若高于60分而低于70分,输出“D grade”;否则输出“Notpassed”。
【要求】
1.使用if–else语句和switch语句两种方法实现。
2.分析if–else语句和switch语句的区别,switch语句特别适合于什么情况使用?
3.思考使用switch语句时应注意什么?
(1.)#include
usingnamespacestd;
intmain(){
intscore,p;
cout<<"ÇëÊäÈë·ÖÊýscore="<cin>>score;
p=score/10;
if(p==9)cout<<"AGrade"<else
if(p==8)cout<<"BGrade"<else
if(p==7)cout<<"CGrade"<else
if(p==6)cout<<"DGrade"<elsecout<<"Notpassed"<return0;
}#include
usingnamespacestd;
intmain(){
intscore,p;
cout<<"请输入分数score="<cin>>score;
p=score/10;
switch(p){
case'9':
case'10':
cout<<"AGrade";break;
case'8':
cout<<"BGrade";break;
case'7':
cout<<"CGrade";break;
case'6':
cout<<"DGrade";break;
default:
cout<<"Notpassed"<}
return0;
}
(2)switch的可读性比嵌套语句if语句要好,更适合于多条件选择。
(3)在使用switch语句的时候还要注意的一点是,常量表达式必须由常量所构成,不能含有变量。
同时,常量表达式的值必须互不相同,也就是说,同一个常量在switch语句中只能对应一种处理方案
4、编写程序:
输入一个数,判断其是否是3或7的倍数,可分为4种情况输出。
(1)是3的倍数,但不是7的倍数。
(2)不是3的倍数,是7的倍数。
(3)是3的倍数,也是7的倍数。
(4)既不是3的被数,也不是7的倍数。
#include
usingnamespacestd;
intmain(){
cout<<"输入一个数"<inta;
cin>>a;
if(a%3==0){
if(a%7==0)cout<<"是3和7的倍数"<elsecout<<"是3但不是7的倍数"<else{if(a%7==0)cout<<"不是3但是7的倍数"<elsecout<<"既不是3也不是7的倍数"<}
return0;
}