蓝蓝计算机考研算法-day8成绩转换和数值统计

196 阅读1分钟

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一样使用多分支语句进行判断。

运行实例

image.png

关键点


算法实现


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;
}

总结

  • 这两题没什么难度,主要用来熟悉编程语言!!!