c语言空心菱形代码
以下是一个简单的C语言程序,用于打印一个空心的菱形。这个程序假设菱形的高度是奇数,并且菱形的中心位于中间行。
c复制代码#include <stdio.h> void printSpaces(int count) { for (int i = 0; i < count; i++) { printf(" "); } } void printStars(int count) { for (int i = 0; i < count; i++) { printf("*"); } } void printHollowDiamond(int n) { int i, j, k; for (i = 1; i <= n; i = i + 2) { printSpaces((n - i) / 2); printStars(i); printf("\n"); } for (i = n - 2; i >= 1; i = i - 2) { printSpaces((n - i) / 2); printStars(i); printf("\n"); } } int main() { int n; printf("Enter the height of the diamond: "); scanf("%d", &n); if (n % 2 == 0) { printf("Height should be odd.\n"); return 0; } printHollowDiamond(n); return 0; }
在这个程序中,我们首先定义了两个辅助函数printSpaces和printStars,它们分别用于打印指定数量的空格和星号。然后,我们定义了一个函数printHollowDiamond,它用于打印空心的菱形。这个函数首先打印菱形的上半部分(包括中间行),然后打印菱形的下半部分。在main函数中,我们获取用户输入的菱形高度,并检查它是否为奇数。如果是奇数,我们就调用printHollowDiamond函数来打印菱形;否则,我们打印一条错误消息并退出程序。
如果您想要打印一个完全空心的菱形(即只有四个角和四个边的星号,中间是空的),那么您需要稍微调整打印逻辑。以下是一个打印完全空心菱形的C语言程序示例:
c复制代码#include <stdio.h> void printSpaces(int count) { for (int i = 0; i < count; i++) { printf(" "); } } void printHollowDiamond(int n) { int i, j; // 打印上半部分(包括中间行) for (i = 1; i <= n; i += 2) { // 打印前半部分空格 printSpaces((n - i) / 2); // 打印星号 if (i == 1 || i == n) { // 如果是第一行或最后一行,打印全部星号 for (j = 0; j < i; j++) { printf("*"); } } else { // 如果是中间行,只打印两边的星号 printf("*"); printSpaces(i - 2); printf("*"); } printf("\n"); } // 打印下半部分(不包括中间行,因为已经打印过) for (i = n - 2; i >= 1; i -= 2) { // 打印前半部分空格 printSpaces((n - i) / 2); // 打印星号 if (i == 1 || i == n - 2) { // 如果是倒数第一行或倒数第二行,打印全部星号 for (j = 0; j < i; j++) { printf("*"); } } else { // 如果是中间行,只打印两边的星号 printf("*"); printSpaces(i - 2); printf("*"); } printf("\n"); } } int main() { int n; printf("Enter the height of the hollow diamond: "); scanf("%d", &n); if (n % 2 == 0) { printf("Height should be odd.\n"); return 1; } printHollowDiamond(n); return 0; }
在这个程序中,我们根据行号i来判断应该打印多少个星号。对于第一行和最后一行,我们打印全部星号;对于中间行,我们只打印两个星号,并用空格填充中间部分。注意,我们在处理下半部分时,不需要再次处理中间行,因为中间行已经在上半部分打印过了。
运行这个程序,并输入一个奇数作为菱形的高度,它将打印出一个完全空心的菱形。如果输入的是偶数,程序会提示高度应为奇数并退出。