初学C ++学生,这是第一个编程课。下面显示的代码输出一个数字方块,如用户输入int时在此链接的屏幕截图中所示。例如,5:
但是,我现在需要让这个循环输出相同的模式,但是当用户输入相同的输入时使用字母:
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;
}
}
答案 0 :(得分:0)
使用此代码。
65是第一个角色&#39; A&#39;号。
答案 1 :(得分:0)
你应该有足够的提示:
C中的字符只是数字的表示(他们的ASCII代码),因此您可以将int
添加到char
并获取与原始字符相距的字符。
例如,查看此代码输出的内容:
for(int i = 0; i< 10; i++){
cout << 'A';
cout << (char)('A' + i);
}
这个提示的另一个补充是这些代码遵循ASCII表。在循环的第二行中转换为char
是cout
知道它必须打印一个字符。
答案 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