C语言编写菱形图案:代码示例与优化
C语言编写菱形图案:代码示例与优化
本文将提供一个使用 C 语言编写菱形图案的代码示例,并详细解释代码的逻辑。
输入样例 1
4
输出样例 1
输入样例 2
7
输出样例 2
. .*
.* .
输入样例 3
28
输出样例 3
... ..*** .*****
.***** ..*** ...
输入样例 4
145
输出样例 4
........* .......*** ......***** .....******* ....********* ...*********** ..************* .***************
.*************** ..************* ...*********** ....********* .....******* ......***** .......*** ........*
C语言代码:
#include <stdio.h>
void printDiamond(int n) {
// 打印棱形
int i, j, k;
for (i = 0; i < n/2 + 1; i++) {
for (j = 0; j < n/2 - i; j++) {
printf('.');
}
for (k = 0; k < 2*i + 1; k++) {
printf('*');
}
printf('
');
}
// 打印剩余的 *
int remaining = n % 2;
if (remaining != 0) {
for (i = 0; i < remaining; i++) {
printf('*');
}
printf('
');
}
}
int main() {
int n;
scanf('%d', &n);
printDiamond(n);
return 0;
}
代码解释:
-
首先,程序读取用户输入的整数 n,表示菱形图案的高度。
-
printDiamond()函数负责打印菱形图案。 -
外层循环控制行数,从 0 到 n/2 + 1,包含上半部分和中间部分。
-
内层第一个循环打印每个行的空格,空格数量为 n/2 - i。
-
内层第二个循环打印每个行的星号,星号数量为 2*i + 1。
-
在完成上半部分和中间部分的打印后,程序需要检查剩余的星号数量,只有当剩余的星号数量不为 0 时,才需要打印剩余的星号,以确保菱形的对称性。
优化:
在原始代码中,即使剩余的星号数量为 0,程序也会打印最后一行空行。为了避免这种情况,我们在代码中增加了一个条件判断,用于检查剩余的星号数量是否为 0。只有当剩余的星号数量不为 0 时,才会执行打印剩余星号的操作。这样,当没有剩余星号时,就不会打印最后一行的空行。
总结:
这段代码示例展示了如何使用 C 语言编写菱形图案,并通过增加条件判断来优化代码,确保代码能够正确处理输入样例并产生正确的输出。希望本文能够帮助你更好地理解 C 语言编程。
原文地址: https://www.cveoy.top/t/topic/oif 著作权归作者所有。请勿转载和采集!