C语言实现长方形字母填充
C语言实现长方形字母填充
问题描述: 给定长和宽,请输出一个长方形,并以a-z顺序按顺序填充。
输入格式: 多组数据,处理到文件尾。每组数据输入两个整数n,m,代表长方形的宽和高,0<n,m<=20,n*m<=26。
输出格式: 请输出以字符为填充的长方形,每个图案之间空一行。
分析: 对于每个长方形,可以先将其初始化为全空格,然后按照字母顺序依次填充。填充的顺序为先从左到右,再从上到下。填充过程中,如果超过了字母'z',就从'a'重新开始。最后输出填充后的长方形即可。
代码如下:
#include <stdio.h>
int main() {
int n, m, i, j, k = 0;
char rectangle[20][20];
while (scanf("%d %d", &n, &m) != EOF) {
// 初始化长方形为全空格
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
rectangle[i][j] = ' ';
}
}
// 填充长方形
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
rectangle[i][j] = 'a' + k;
k = (k + 1) % 26; // 循环填充字母
}
}
// 输出长方形
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
printf("%c", rectangle[i][j]);
}
printf("\n");
}
printf("\n"); // 在每个长方形之间添加空行
}
return 0;
}
代码解析:
- 使用循环初始化一个二维字符数组
rectangle,用于存储长方形的字符。 - 使用两个嵌套循环遍历长方形的每个位置,并根据
k的值填充字母。 k的值通过模运算% 26来循环填充字母。- 最后使用两个嵌套循环输出填充后的长方形。
示例输入:
3 4
5 2
示例输出:
abcd
efgh
ijkl
abcd
efgh
原文地址: https://www.cveoy.top/t/topic/nfNl 著作权归作者所有。请勿转载和采集!