c語言實現一些簡單圖形的打印

 1 #define _CRT_SECURE_NO_WARNINGS 1 app

由於筆者採用的是VS的編譯環境因此有了上面的這一句話spa

咱們都知道平面圖形是由一條條線段構成,因此咱們就先實現線段的打印.net

 1 //打印自定義長度的線段
 2 #include<stdio.h>
 3 int main()
 4 { 5 int i = 0; 6 int n; 7 while (~scanf("%d", &n)) 8  { 9 for (i = 0; i < n; i++) 10 printf("* "); 11 printf("\n"); 12  } 13 return 0;

運行結果

那麼,線段學會了,咱們就能夠進行簡單圖形的打印了3d

首先咱們從正方形開始:code

 1 //打印自定義邊長的正方形
 2 #include<stdio.h>
 3 int main()
 4 { 5 int j = 0, i = 0; 6 int n; 7 while (~scanf("%d", &n)) 8  { 9 for (i = 0; i < n; i++)//控制行 10  { 11 for (j = 0; j < n; j++)//控制列 12 printf("* "); 13 printf("\n"); 14  } 15  } 16 return 0; 17 }
 

運行結果

 接下來是三角形:(筆者準備了六種三角形)blog

  1 //打印三角形—1
  2 #include<stdio.h>
  3 int main()
  4 { 5 int j = 0, i = 0, n; 6 while (~scanf("%d", &n)) 7  { 8 for (j = 0; j < n; j++)//行 9  { 10 for (i = 0; i < n - j; i++)//列 11  { 12 printf("* "); 13  } 14 printf("\n"); 15  } 16  } 17 return 0; 18 } 19 20 //打印三角形—2 21 #include<stdio.h> 22 int main() 23 { 24 int j = 0, i = 0, n; 25 while (~scanf("%d", &n)) 26  { 27 for (j = 0; j < n; j++)//行 28  { 29 for (i = 0; i <= j; i++)//列 30  { 31 printf("* "); 32  } 33 printf("\n"); 34  } 35  } 36 return 0; 37 } 38 39 //打印三角形—3 40 #include<stdio.h> 41 int main() 42 { 43 int j = 0, i = 0, n; 44 while (~scanf("%d", &n)) 45  { 46 for (j = 0; j < n; j++)//行 47  { 48 for (i = 0; i < n - j - 1; i++)//列 49  { 50 printf(" "); 51  } 52 for (i = 0; i <= j; i++) 53  { 54 printf("* "); 55  } 56 printf("\n"); 57  } 58  } 59 return 0; 60 } 61 62 //打印三角形—4 63 #include<stdio.h> 64 int main() 65 { 66 int j = 0, i = 0, n; 67 while (~scanf("%d", &n)) 68  { 69 for (j = 0; j < n; j++)//行 70  { 71 for (i = 0; i < j ; i++)//列 72  { 73 printf(" "); 74  } 75 for (i = 0; i < n - j ; i++) 76  { 77 printf("* "); 78  } 79 printf("\n"); 80  } 81  } 82 return 0; 83 } 84 85 //打印三角形—5 86 #include<stdio.h> 87 int main() 88 { 89 int j = 0, i = 0, n; 90 while (~scanf("%d", &n)) 91  { 92 for (j = 0; j < n; j++)//行 93  { 94 for (i = 0; i <= n - j ; i++)//列 95  { 96 printf(" "); 97  } 98 for (i = 0; i <= j; i++) 99  { 100 printf("* "); 101  } 102 printf("\n"); 103  } 104  } 105 return 0; 106 } 107 108 //打印三角形—6 109 #include<stdio.h> 110 int main() 111 { 112 int j = 0, i = 0, n; 113 while (~scanf("%d", &n)) 114  { 115 for (j = 0; j < n; j++)//行 116  { 117 for (i = 0; i < j; i++)//列 118  { 119 printf(" "); 120  } 121 for (i = 0; i < n - j; i++) 122  { 123 printf("* "); 124  } 125 printf("\n"); 126  } 127  } 128 return 0; 129 }

                

 

 

如今就能夠嘗試一下圖形的挖空了get

咱們仍然保持以前的順序從正方形到三角形:io

//空心正方形
#include<stdio.h>
int main()
{
    int j = 0,i=0; int n; while (~scanf("%d", &n)) { for (j = 0; j < n; j++) { for (i = 0; i < n; i++) { if (j == 0 || i==0 ||j==n-1 || i==n-1) printf("* "); else printf(" "); } printf("\n"); } } }
 1 //空心三角形
 2 #include<stdio.h>
 3 int main()
 4 { 5 int n; 6 int i = 0, j = 0; 7 while (~scanf("%d", &n)) 8  { 9 for (i = 0; i < n; i++) 10  { 11 for (j = 0; j <= i; j++) 12  { 13 if (j == 0 || i == j || i==n-1 ) 14 printf("* "); 15 else 16 printf(" "); 17  } 18 19 printf("\n"); 20  } 21  } 22 }

   

 

 

 那麼咱們能夠從以上知識嘗試一下本身打出一個菱形以及空心菱形編譯

 1 #define _CRT_SECURE_NO_WARNINGS 1
 2 #include<stdio.h>
 3 #include<math.h>
 4 int main()
 5 { 6 int i = 0, j = 0; 7 int n; 8 while (~scanf("%d", &n))//在這的n咱們必須保證是奇數 9  { 10 for (i = 0; i < n; i++) 11  { 12 for (j = 0; j < abs(n / 2 - i); j++) 13 printf(" "); 14 for (j = 0; j < n - 2 * abs(n / 2 - i); j++) 15 printf("*"); 16 printf("\n"); 17  } 18  } 19 return 0;

爲了更好的理解,筆者微微修改了以上代碼class

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h> #include<math.h> #include<Windows.h> int main() { int i = 0, j = 0; int n; while (~scanf("%d", &n)) { for (i = 0; i < n; i++) printf("%2d",i); printf("\n"); for (i = 0; i < n; i++) { for (j = 0; j < abs(n / 2 - i); j++) { printf(" "); Sleep(100); } for (j = 0; j < n - 2 * abs(n / 2 - i); j++) { printf("* "); Sleep(100); } printf("\n"); Sleep(100); } } return 0; }

此外在提供一個打印菱形的代碼

#include<stdio.h>

int main()

{

    int i, j, n;

    {

         while (~scanf("%d", &n))

         {//上邊部分

             for (i = 0; i < n; i++)

             {

                 for (j = i; j < n - 1; j++)

                      printf(" ");

                 for (j = 0; j < 2 * i + 1; j++)

                      printf("*");

                 printf("\n");

             }

             for (i = n - 2; i >= 0; i--) //這裏i從n-2開始的,要是從n-1開始會出現兩行相同的狀況

             {

                 for (j = i; j < n - 1; j++)

                      printf(" ");

                 for (j = 0; j < 2 * i + 1; j++)

                      printf("*");

                 printf("\n");

             }//下邊部分

         }

         return 0;

    }

}

固然,確定要在這給幾個筆者參考過的文章

參考 https://blog.csdn.net/marwi_study/article/details/88749427?utm_source=app

在這筆者再提供一個由字符組成的三角形 

#include<stdio.h>

int main()
{
    int i, j, n, k = 0; char ch = 'A'; printf("請輸入行數:"); scanf("%d", &n); for (i = 0; i < n; i++) { for (j = 0; j < 2*(n-i)-1; j++) { k++; if (k % 2 != 0) { printf("%c", ch++); } else printf("%c", ch); } printf("\n"); } return 0; }

最後能夠你們能夠嘗試一下本身打印空心菱形以及由字符構成的圖形

相關文章
相關標籤/搜索