Day08 2023/03/07
难度:简单
题目1
11、成绩转换
输入一个百分制的成绩款M,将其转换对应的等级,具体转换规则如下:
90-100为A
80-89为B
70-79为C
60-69为D
0-59为E
题目2
统计给定的个数中,负数、季和正数的个数。
输入:
输入数据有多组,每组占一行,每行的第一个数是整数(n<100),表示需要统计的数值的个
数,然后是个实数:如果=0,则表示输入结束,该行不做处理。
输出:
对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、季和正数的个数。
示例1
输入: 100
输出: 成绩为:A
示例2
输入: 3 -1 0 1
输出: 1 1 1
说明: 统计3个数字其中负数,零,正数的个数分别为1 1 1
思路一
按照题目要求,通过多分支语句if else-if else的形式进行条件判断并打印
思路二
按照题目要求,和题目1一样使用多分支语句进行判断。
运行实例
关键点
- 题目二中外层while循环实现多行输入并判断n值是否合法
- 内层whle循环,统计每一行中负,零,正数出现的次数。
- 不熟悉输入函数的可以看篇c++最全输入函数cin, cin.get(), cin.getline(), getline()和getchar()的具体用法和详解!!! - 掘金 (juejin.cn),详细说明了c++中各个输入函数的特性,这也是大多数人不清楚的点。
算法实现
c++代码实现-成绩转换
#include <iostream>
using namespace std;
//成绩转换
int main() {
int score = 0; // 成绩
cin >> score; // 输入成绩
if (score >= 90 && score <= 100) cout << "成绩为:A";
else if (score >= 80 && score <= 89) cout << "成绩为:B";
else if (score >= 70 && score <= 79) cout << "成绩为:C";
else if (score >= 60 && score <= 69) cout << "成绩为:D";
else cout << "成绩为:E";
return 0;
}
c++代码实现-数值统计
#include <iostream>
using namespace std;
// 数值统计
int main() {
// n为每行的要统计的数字数量,val为待统计的数字
int n = 0, val = 0;
while (cin >> n && n > 0) { // n如果小于等于0直接返回
int a = 0, b = 0, c = 0; // a b c分别为负数,零,正数的个数
while (n-- && cin >> val) {
if (val < 0) a++;
else if (val == 0) b++;
else c++;
}
cout << "负数个数:" << a << " 零个数" << b << " 正数个数:" << c << endl;
}
return 0;
}
总结
- 这两题没什么难度,主要用来熟悉编程语言!!!