初识编程语言:入门题练思维
本文发布于1209天前,最后更新于 1209 天前,其中的信息可能已经有所发展或是发生改变。

前言

算法编程最注重思维,而编程思维在本质上甚至接近数学。但算法最核心的部分一定是为了解决一个实际问题,这个问题是一定可以用算法进行解决的。对于大多数入门的人来说,刷题时确实都会按照题目给的要求来设计算法,但是在这一过程中,往往不会想要去寻求一个最优解。

在数学题中有通解与优解,编程题其实也一样。那么这篇文章记载的就是一些入门级别题目的优解及思维过程,其中还会适时包括编程语言的基础语法,希望阅读它可以使你在刚刚入门编程这一领域时,就能够自主深化编程思维,提高算法设计水平。

问题 Z: 五级成绩区间

题目描述

输入五级成绩(A~E),输出相应的百分制成绩区间(0~100),要求使用多路选择语句。五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59)。

输入

B

输出

80-89

样例输入

E

样例输出

0-59

如果用常规思路,不难想到可以使用switch分支语句来解决问题,不过,如果了解了char类型与int类型之间的关系,完全可以用一个二维字节数组来完成任务

先直接上代码

#include <iostream>
using namespace std;
​
int main()
{
    const char*range[5] = {"90-100","80-89","70-79","60-69","0-59"};
    char level = 0;
    int n = 0;
    cin >> level;
    n = level - 'A';
    cout << range[n] << endl;
    return 0;
}

基础知识

char类型其实就是占用一个1字节的整数型,范围是-128~127而如果向char中存入字母,比如将A存入char中,那么char的int数值表示其实就是A的ASCII编码,也就是65

思维过程

在输入明确表明被限制在了ABCDE的情况下,我们不妨建立一个{ABCDE}到{"90-100","80-89","70-79","60-69","0-59"}的映射,提到映射想必很熟悉了吧,没错高中必修一就学的知识,那么如何将ABCDE转换为char数组的下标呢?上面讲了char类型的int数值表示,所以可以直接将输入进来的字母减去'A'(想想为什么用单引号),这样我们就得到了{ABCDE}到{01234}的映射,这不就是char数组的下标嘛,问题到此结束,没有使用任何一个分支语句!

未完待续→

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
Source: https://github.com/zhaoolee/ChineseBQB
Source: https://github.com/zhaoolee/ChineseBQB
Source: https://github.com/zhaoolee/ChineseBQB
颜文字
Emoji
小恐龙
花!
滑稽大佬
演奏
程序员专属
上一篇
下一篇