【2_27】编写一段程序,运行时向用户提问“你考了多少分?(0~100)”,接受输入后判断其等级并显示出来。
判断依据如下:等级={优秀 (90~100分);良好 (80~89分);一般 (60~79分);不及格 (0~59分);}
要求:必须用switch语句实现。
代码:
int Code2_27()
{
int scores = 0;
cout << "你考了多少分?" << endl;
cin >> scores;
int caseScores = scores / 10; //用“整除”将分数的逻辑范围转化为case常量
switch (caseScores)
{
case(10):case(9): cout << "你的等级为:优秀"; //多个case对应一个表达式写法
break;
case(8): cout << "你的等级为:良好";
break;
case(7):case(6): cout << "你的等级为:一般";
break;
case(5):case(4):case(3):case(2):case(1):case(0):cout << "你的等级为:不合格";
break;
default:cout << "请检查分数是否在此范围内!" << endl;
break;
}
return scores;
}
需要注意的点:
1.switch语句里的case只能跟常量,而判断分数明显是逻辑判断,因此需要将逻辑值转化为常量
2.switch里多个case对应相同表达式的时写法
【2_28】实现一个简单的菜单程序,运行时显示"Menu: A(dd) D(elete) S(ort) Q(uit),Select one:"提示用户输入,A 表示增加,D 表示删除,S 表示排序,Q 表示退出,输入为 A、D、S 时分别提示"数据已经增加、删除、排序。"直到输入为 Q 时程序结束。
要求:必须使用 Switch 语句。
代码:
int Code2_28()
{
char userInput;
cout << "Menu: A(add) D(delete) S(sort) Q(quit),Select one:" << endl;
cin >> userInput;
while (userInput !='Q')
{
switch (userInput)
{
case 'A':cout << "数据已经增加...." << endl; break;
case 'D':cout << "数据已经删除..." << endl; break;
case 'S':cout << "数据已经排序..." << endl; break;
default:cout << "未找到此功能,请重新输入...." << endl; break;
}
cin >> userInput;
continue;
}
cout << "程序即将退出...." << endl;
return 0;
}
需要注意的点:
1.switch对应的常量不仅只有整型常量,还有实型常量和字符型常量等,因此可直接匹配字符'A'。
【2_29】用穷举法找出1~100的质数并显示出来,并分别用while、do-while、for循环语句实现.。
代码:
int Code_2_29()
{
//质数定义:不能被它本身和1以外的数整除
/*
* description:用while循环求1~100之间的质数
* parm: null
* return: null
*/
int number_1 = 1;
while (number_1 >=1&& number_1 <=100)
{
int i = 1;
int counts = 0;
while (i<= number_1)
{
if (number_1%i == 0) //整除的意思也就是求余数为0
{
counts++; //counts是余数为0的记次数
}
i++; //i从1递增到number本身
}
if (counts==2) //如果是两次整除就是1和本身,说明是质数
{
cout << number_1 << "是质数" << endl;
}
number_1++;
}
cout << "**************分割线***************" << endl;
/*
* description:用do...while循环求1~100之间的质数
* parm: null
* return: null
*/
int number_2 = 1;
do
{
int i = 1;
int counts = 0;
do
{
if (number_2%i==0)
{
counts++;
}
i++;
} while (i<= number_2);
if (counts==2)
{
cout << number_2 << "是质数" << endl;
}
number_2++;
} while (number_2 >=1&& number_2 <=100);
cout << "**************分割线***************" << endl;
/*
* description:用for循环求1~100之间的质数
* parm: null
* return: null
*/
for (int number_3 = 1; number_3 <= 100; number_3++)
{
int counts = 0;
for (int i = 1; i <= number_3; i++)
{
if (number_3%i==0)
{
counts++;
}
}
if (counts==2)
{
cout << number_3 << "是质数"<<endl;
}
}
return 0;
}
需要注意的点:
1.整除的意思也就是求余数为0
2.本质是双层循环嵌套:第一层循环穷举1~100,第二层循环穷举从1~自身
【2_32】在程序中定义一个整型变量,赋以 1~100 的值,要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。
代码:
#include<cmath>
#include<time.h>
int Code_2_32()
{
srand((unsigned)time(NULL)); //置随机数种子
int number = rand()%100+1; //在1-100内随机取一个数
int guessNum = -1;
cout << "请猜一猜这个数字是多少?(1~100)" << endl;
cin >> guessNum;
while (guessNum != number)
{
if (guessNum>number)
{
cout << "输入的值偏大,请重新输入.." << endl;
}
else
{
cout << "输入的值偏小,请重新输入..." << endl;
}
cin >> guessNum;
}
cout << &