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

97 阅读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、思路

题1思路-c++

if-else if-判断。

题2思路-c++

for循环cin在缓冲区找n个数字,再if-else if判断负数、零、正数的个数。

2、具体实现

题目1

#include <iostream>
using namespace std;

char gradeConversion(int grade)
{
    if (grade >= 90 && grade <= 100)
        return 'A';
    else if (grade >= 80 && grade <= 89)
        return 'B';
    else if (grade >= 70 && grade <= 79)
        return 'C';
    else if (grade >= 60 && grade <= 69)
        return 'D';
    else if (grade >= 0 && grade <= 59)
        return 'E';
    else
        return ' ';
}

结果

image.png

题目2

#include <iostream>
using namespace std;

void valueCount(int n)
{
    if (n == 0)
        cout << "该行不做处理。";
    else
    {
        int num, countA = 0, countB = 0, countC = 0;
        for (size_t i = 0; i < n; i++)
        {
            cin >> num;
            if (num < 0)
                countA++;
            else if (num == 0)
                countB++;
            else
                countC++;
        }
        cout << "a = " << countA << " "
             << "b = " << countB << " "
             << "c = " << countC << " " << endl;
    }
}

结果

image.png