使用For循环将数字转换为字母和输出字母方块

时间:2015-10-29 23:36:51

标签: c++ loops

初学C ++学生,这是第一个编程课。下面显示的代码输出一个数字方块,如用户输入int时在此链接的屏幕截图中所示。例如,5:

enter image description here

但是,我现在需要让这个循环输出相同的模式,但是当用户输入相同的输入时使用字母:

AAAAAAAAA
ABBBBBBBA
ABCCCCCBA
ABCDDDCBA
ABCDEDCBA
ABCDDDCBA
ABCCCCCBA
ABBBBBBBA
AAAAAAAAA

任何人都可以如此友好地建议如何最好地将这些数字转换成字母。例如1 ='A',2 ='B'等。

非常感谢你。

#include <iostream>
#include <string>
#include <cmath>
#include <algorithm>

using namespace std;

int main() {

    int size;

    cin >> size;

    int iSize = size;

    for (int r = 1 - iSize; r < iSize; r++) {
        for (int c = 1 - iSize; c < iSize; c++) {   
            cout << iSize - max(abs(r), abs(c));
        }   
        cout << endl;
    }
}

4 个答案:

答案 0 :(得分:0)

使用此代码。

char ch =(char)(i + 65);

65是第一个角色&#39; A&#39;号。

答案 1 :(得分:0)

你应该有足够的提示: C中的字符只是数字的表示(他们的ASCII代码),因此您可以将int添加到char并获取与原始字符相距的字符。

例如,查看此代码输出的内容:

for(int i = 0; i< 10; i++){
    cout << 'A';
    cout << (char)('A' + i);
}

这个提示的另一个补充是这些代码遵循ASCII表。在循环的第二行中转换为charcout知道它必须打印一个字符。

答案 2 :(得分:0)

一个有价值的编程提示:孤立地开发新功能。不要担心这个方块,问题是如何将数字转换成字母。

char类型是整数类型 - 数字 - 代码倾向于将其解释为字符。它如何在数字和字符之间来回映射? ASCII。但是现在足以知道代码将数字65解释为&#39; A&#39; 66将&#39; B&#39; 67解释为&#39; C&#39;等等。所以你可以通过以下方式将{1,2,3,...}翻译成{A,B,C,...}:

char c = n + 64;

但是,如果您在没有WiFi的煤矿深处工作,并且您无法访问任何ASCII表格以查找A&#39; A&#39; = 65?好吧,你实际上不需要知道它是什么,使用它:

char c = n + 'A' - 1;

答案 3 :(得分:0)

我找到了解决方案。谢谢大家的时间和建议!

pod_mysql
do_sqlite