一箭穿心C语言程序代码
"一箭穿心"(也称为"心灵箭")是一个常见的编程题目,通常用来练习控制流和循环结构的使用。它的基本要求是根据输入的数字 n,输出一个形状为菱形的图案,其中数字 n 决定菱形的大小。下面是一个详细的C语言程序示例,用于实现这个功能。
c#include <stdio.h>
#include <stdlib.h>
void printDiamond(int n) {
int i, j, space, k = 0;
// 上半部分菱形
for (i = 1; i <= n; i++) {
// 打印空格
for (space = 1; space <= n - i; space++)
printf(" ");
// 打印星号
while (k != 2 * i - 1) {
if (k == 0 || k == 2 * i - 2)
printf("*");
else
printf(" ");
k++;
}
k = 0;
// 换行
printf("\n");
}
// 下半部分菱形
for (i = n - 1; i >= 1; i--) {
// 打印空格
for (space = 0; space < n - i; space++)
printf(" ");
// 打印星号
k = 0;
while (k != 2 * i - 1) {
if (k == 0 || k == 2 * i - 2)
printf("*");
else
printf(" ");
k++;
}
printf("\n");
}
}
int main() {
int n;
// 输入菱形的大小 n
printf("Enter the number of rows (odd number): ");
scanf("%d", &n);
// 确保输入的是奇数
if (n % 2 == 0) {
printf("Please enter an odd number.\n");
return 0;
}
// 打印菱形
printDiamond(n);
return 0;
}
程序说明:
printDiamond 函数:
printDiamond
函数用于打印菱形图案,接受一个整数参数n
,表示菱形的行数(高度)。- 使用两个循环结构,第一个循环控制菱形的上半部分,第二个循环控制菱形的下半部分。
- 内部的空格和星号打印逻辑确保了菱形的形状正确性。
main 函数:
main
函数负责程序的控制流程。- 首先要求用户输入一个奇数
n
,以确定菱形的大小。 - 然后调用
printDiamond
函数打印菱形。
使用方法:
- 编译并运行该程序,根据提示输入一个奇数,程序将会打印出相应大小的菱形图案。
这个程序展示了如何利用C语言中的基本控制流和循环结构来实现一个简单但具有挑战性的图案打印任务。