工具/材料
ubuntu+vim+gcc
操作方法
首先,輸入預處理指令#include <stdio.h>與函數原型void print(int n)。
其中,n表示行數。
然後,對輸入的n進行提前判斷,若小於0或爲偶數,則結束打印。
接着對上半個菱形進行輸出(包括最長的行)。使用兩層循環進行輸出,分別控制行數與行內的位置。
接着對下半個菱形進行輸出(包括最長的行)。也使用兩層循環進行輸出,分別控制行數與行內的位置。
對n=5與n=7進行輸出測試,代碼如下。
編譯執行後的結果如下
以下是所有的代碼:
#include <stdio.h>
void print(int n)
{
//判斷n是否符合正奇數的要求
if(n < 0 || n % 2 == 0)
//不符合則直接退出
return;
//對上半個菱形輸出
int i = 1,j = 1;
//i控制行數
for(i = 1; i <= (n + 1) / 2; i++)
{
//j控制每一行的位置
//輸出空格
for(j = 1; j <= (n+1)/2 - i; j++)
printf(" ");
//輸出*
for(j = 1; j <= 2 * i - 1; j++)
printf("*");
//輸出換行
printf("n");
}
//輸出下一半
//i控制行數
for(i = 1; i <= n/2; i++)
{
//j控制每一行的位置
//輸出空格
for(j = 1; j <= i; j++)
printf(" ");
//輸出*
for(j = 1; j <= n -2 * i; j++)
printf("*");
//輸出換行
printf("n");
}
}
//測試函數,測試n=5和n=7
int main()
{
printf("5n");
print(5);
printf("7n");
print(7);
return 0;
}