多行输出
多行输出练习题,使用cout
或printf
函数输出多行内容。
BCQM3006
题目要求
描述
在windows的控制台环境中所有的字符都是等宽的,默认情况下窗口中每行有 80 个字符,每个屏幕有 25 行,组成了一个字符矩阵。利用控制台的这个特点,我们可以在控制台上绘制简单的图形。下面给出了一个 5×7 的图形的例子
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
找出这个图形的特点,绘制一个 10×18 的图形。
输入
无
输出
输出与上图类似的一个10×18 的图形。
输入样例
无
输出样例
ABCDEFGHIJKLMNOPQR
BABCDEFGHIJKLMNOPQ
CBABCDEFGHIJKLMNOP
DCBABCDEFGHIJKLMNO
EDCBABCDEFGHIJKLMN
FEDCBABCDEFGHIJKLM
GFEDCBABCDEFGHIJKL
HGFEDCBABCDEFGHIJK
IHGFEDCBABCDEFGHIJ
JIHGFEDCBABCDEFGHI
题目分析
初学阶段题目的本意应该是目测规律,按照输出样例原样输出。练习点在练习使用cout
或printf
函数输出多行内容。printf
函数需要使用\n
换行,而cout
则需要使用endl
换行。这里练习了三种解法供参考。
代码参考
方法一:Cout
#include <iostream>
using namespace std;
int main() {
cout << "ABCDEFGHIJKLMNOPQR" << endl;
cout << "BABCDEFGHIJKLMNOPQ" << endl;
cout << "CBABCDEFGHIJKLMNOP" << endl;
cout << "DCBABCDEFGHIJKLMNO" << endl;
cout << "EDCBABCDEFGHIJKLMN" << endl;
cout << "FEDCBABCDEFGHIJKLM" << endl;
cout << "GFEDCBABCDEFGHIJKL" << endl;
cout << "HGFEDCBABCDEFGHIJK" << endl;
cout << "IHGFEDCBABCDEFGHIJ" << endl;
cout << "JIHGFEDCBABCDEFGHI" << endl;
return 0;
}
方法二:多次Printf
#include <cstdio>
using namespace std;
int main() {
printf("%s\n", "ABCDEFGHIJKLMNOPQR");
printf("%s\n", "BABCDEFGHIJKLMNOPQ");
printf("%s\n", "CBABCDEFGHIJKLMNOP");
printf("%s\n", "DCBABCDEFGHIJKLMNO");
printf("%s\n", "EDCBABCDEFGHIJKLMN");
printf("%s\n", "FEDCBABCDEFGHIJKLM");
printf("%s\n", "GFEDCBABCDEFGHIJKL");
printf("%s\n", "HGFEDCBABCDEFGHIJK");
printf("%s\n", "IHGFEDCBABCDEFGHIJ");
printf("%s\n", "JIHGFEDCBABCDEFGHI");
return 0;
}
方法三:Printf 格式化输出
#include <cstdio>
using namespace std;
int main() {
printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n", "ABCDEFGHIJKLMNOPQR",
"BABCDEFGHIJKLMNOPQ", "CBABCDEFGHIJKLMNOP", "DCBABCDEFGHIJKLMNO",
"EDCBABCDEFGHIJKLMN", "FEDCBABCDEFGHIJKLM", "GFEDCBABCDEFGHIJKL",
"HGFEDCBABCDEFGHIJK", "IHGFEDCBABCDEFGHIJ", "JIHGFEDCBABCDEFGHI");
return 0;
}
其实我在初看本题的时候,我以为是根据规律利用ASCII码输出,这样可以实现出任意 的图形的效果。但是觉得这个阶段对于一个初学者来说难度有点大。所以,我猜测出题者的本意就是我上面分析的意思。于是我让我的孩子实现了上述三种方法。如果你能力足够,建议可以按照的方式练习一下。 {: .prompt-tip }
{% include custom/custom-post-content-footer.md %}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
“luogu-”系列题目可在 洛谷题库 在线评测。
“bcqm-”系列题目可在 编程启蒙题库 在线评测。
GESP/CSP 认证学习微信公众号

Last updated on