1. 程式人生 > >列印菱形圖案的做法(多種)

列印菱形圖案的做法(多種)

話不多說,直接上程式碼

//簡單版本
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{   
    
    int j=0;
    int i=0;
    char a[20]={"       *       "};
    char b[20]={"***************"};
    char c[20]={"       *       "};
    printf("%s\n",a)
; for(i=1 ;i<=7 ;i++) { a[7+i]=b[7+i]; a[7-i]=b[7-i]; printf("%s\n",a); } for(i=7 ;i>0 ;i--) { a[7-i]=c[7-i]; a[7+i]=c[7+i]; printf("%s\n",a); } system("pause"); return 0; //
//複雜版本
#include<stdio.h> /*列印菱形圖案*/ int main (void) { int n,j,i; /*i為行數,j為每行中的項數*/ printf("(n為奇數)輸入圖案高度n:\n"); scanf("%d",&n); if (n<=0||n%2==0) /*判斷n輸入正誤*/ printf("輸入錯誤!"); else { for(i=1;i<=n/2+1;i++) /*列印上三角,(包括中間行)*/
{ for(j=1;j<=n/2+i;j++) { if(j>=n/2-i+2) printf(" *"); else printf(" "); } printf("\n"); } for(i=n/2;i>=1;i--) /*列印下三角,(不包括中間行)*/ { /*將i改為倒序,這樣就不必再次考慮每行中項的列印,下個for迴圈可以直接複製上三角部分*/ for(j=1;j<=n/2+i;j++) /*這個for迴圈與上三角一致 */ if(j>=n/2-i+2) printf(" *"); else printf(" "); printf("\n"); } } return 0; }

結果如下:
在這裡插入圖片描述
希望對你有所幫助(**)