初级天翼
哈喽大家好,我以后每天会带来一个C++知识运用和习题(可能会停更)
今天带来switch用法:
主要格式如下
switch (表达式) {
case 常量表达式1:[语句组1][break;]
......
case 常量表达式n:[语句组n][break;]
default: [语句组n+1]
}
switch和if的功能差不多,因为很少用,所以今天讲它
功能:首先计算表达式的值。case后面的常量表达式值逐一与之匹配,当某一个case分支中的常量表达式值与之匹配时,则执行该分支后面的语句组。然后顺序执行之后的所有语句,直到遇到break语句或switch语句的右括号为止。如果switch语句中包含default。表示表达式与各分支常量表达式的值都不匹配时。执行后面的语句组,通常将default放在最后。
规则:
(1)合法的switch语句中的表达式其取值只能是整形,字符型,布尔型或枚举型。
(2)常量表达式是由常量组成的表达式,值的类型与表达式的类型相同。
(3)任意两个case后的常量表达式值必须各不相同,否则将引起歧义。
(4)语句组可以是一个语句,也可以是一组语句。
例题[1.0]
一个最简单的计算器支持+、-、*、/四种运算。输入只有一行:两个参加运算的数和一个操作符。输出运算表达式及结果。考虑下面两种情况:
(1)如果出现除数为0,则输出:Divided by zero!
(2)如果出现无效操作符,则输出:Invalid operator!
分析:num1、num2存放数字,op存放操作符
当op为‘+’时计算加法,为‘-’计算减法...以此类推,到最后op不是以上操作符中的一个时,输出:Invalid operator
代码分析:
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
double num1, num2;
char op;
cin >> num1 >> num2 >> op;
switch (op) {
case'+' : cout << num1 << op << num2 << '=' << num1 + num2 << endl; break;
case'-' : cout << num1 << op << num2 << '=' << num1 - num2 << endl; break;
case'*' : cout << num1 << op << num2 << '=' << num1 * num2 << endl; break;
case'/' : if (num2 != 0) cout << num1 << op << num2 << '=' << num1 / num2 << endl;
else cout << "Divided by zero!" << endl; break;
default :cout << "Invalid operator!";
}
return 0;
}
这就是今天课程讲解,以下是作业部分:
恩格尔系数(Engel's Coefficient)
食品支出总额占个人消费支出总额的比重。19世纪德国统计学家恩格尔根据统计资料,对消费结构的变化得出一个规律:一个家庭收入越少,家庭收入中(或总支出中)用来购买食物的支出所占的比例就越大,随着家庭收入的增加,家庭收入中(或总支出中)用来购买食物的支出比例则会下降。恩格尔系数达59%以上为贫困,50~59%为温饱,40~50%为小康,30~40%为富裕,低于30%为最富裕。请你编写程序,写出这个计算的方式。输入两个数,为食品支出和总支出,请计算这个家庭是属于贫困、温饱、小康、富裕还是最富裕
样例输入:
2100 5000
样例输出:
这个家庭属于小康
数据范围:
1000<=x,y <= int范围
此题不是酷町堂题目,是自己出题,第一个用switch写出拿走豆豆,2天之内没人写出第一个用if写的拿走豆豆
初级启示者
break可以省掉,还有
你确定作业会有人做?(除了你自己)
董宇昊在2020-06-25 20:59:53追加了内容
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b;
c=a*10/b;
switch(c){
case 1:
cout<<"这个家庭属于最富裕";break;
case 2:
cout<<"这个家庭属于最富裕";break;
case 3:
cout<<"这个家庭属于富裕";break;
case 4:
cout<<"这个家庭属于小康";break;
case 5:
cout<<"这个家庭属于温饱";break;
default:
cout<<"这个家庭属于贫困";break;
}
return 0;
}
中级天翼
你这个题目不是很简单吗
#include<iostream>
using namespace std;
int a,b,t;
int main(){
cin>>a>>b;
t=a*10/b;
switch(t){
case 5:cout<<"这个家庭属于温饱";break;
case 4:cout<<"这个家庭属于小康";break;
case 3:cout<<"这个家庭属于富裕";break;
case 2:cout<<"这个家庭属于最富裕";break;
case 1:cout<<"这个家庭属于最富裕";break;
default:cout<<"这个家庭属于贫困";break;
}
return 0;
}
中级光能
#include<iostream>
using namespace std;
int a,b,x;
int main(){
cin>>a>>b;
x=a*10/b;
switch(x){
case 5:cout<<"这个家庭属于温饱";break;
case 4:cout<<"这个家庭属于小康";break;
case 3:cout<<"这个家庭属于富裕";break;
case 2:cout<<"这个家庭属于最富裕";break;
case 1:cout<<"这个家庭属于最富裕";break;
default:cout<<"这个家庭属于贫困";break;
}
return 0;
}