利用C語言如何實現一些簡單圖形的列印
阿新 • • 發佈:2020-12-23
1#define_CRT_SECURE_NO_WARNINGS 1
因為筆者採用的是VS的編譯環境所以有了上面的這一句話
我們都知道平面圖形是由一條條線段構成,所以我們就先實現線段的列印
//列印自定義長度的線段 #include<stdio.h> int main() { int i = 0; int n; while (~scanf("%d",&n)) { for (i = 0; i < n; i++) printf("* "); printf("\n"); } return 0;
那麼,線段學會了,我們就可以進行簡單圖形的列印了
首先我們從正方形開始:
//列印自定義邊長的正方形 #include<stdio.h> int main() { int j = 0,i = 0; int n; while (~scanf("%d",&n)) { for (i = 0; i < n; i++)//控制行 { for (j = 0; j < n; j++)//控制列 printf("* "); printf("\n"); } } return 0; }
接下來是三角形:(筆者準備了六種三角形)
//列印三角形—1 #include<stdio.h> int main() { int j = 0,i = 0,n; while (~scanf("%d",&n)) { for (j = 0; j < n; j++)//行 { for (i = 0; i < n - j; i++)//列 { printf("* "); } printf("\n"); } } return 0; } //列印三角形—2 #include<stdio.h> int main() { int j = 0,&n)) { for (j = 0; j < n; j++)//行 { for (i = 0; i <= j; i++)//列 { printf("* "); } printf("\n"); } } return 0; } //列印三角形—3 #include<stdio.h> int main() { int j = 0,&n)) { for (j = 0; j < n; j++)//行 { for (i = 0; i < n - j - 1; i++)//列 { printf(" "); } for (i = 0; i <= j; i++) { printf("* "); } printf("\n"); } } return 0; } //列印三角形—4 #include<stdio.h> int main() { int j = 0,&n)) { for (j = 0; j < n; j++)//行 { for (i = 0; i < j ; i++)//列 { printf(" "); } for (i = 0; i < n - j ; i++) { printf("* "); } printf("\n"); } } return 0; } //列印三角形—5 #include<stdio.h> int main() { int j = 0,&n)) { for (j = 0; j < n; j++)//行 { for (i = 0; i <= n - j ; i++)//列 { printf(" "); } for (i = 0; i <= j; i++) { printf("* "); } printf("\n"); } } return 0; } //列印三角形—6 #include<stdio.h> int main() { int j = 0,&n)) { for (j = 0; j < n; j++)//行 { for (i = 0; i < j; i++)//列 { printf(" "); } for (i = 0; i < n - j; i++) { printf("* "); } printf("\n"); } } return 0; }
現在就可以嘗試一下圖形的挖空了
我們仍然保持之前的順序從正方形到三角形:
//空心正方形 #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"); } } }
//空心三角形 #include<stdio.h> int main() { int n; int i = 0,j = 0; while (~scanf("%d",&n)) { for (i = 0; i < n; i++) { for (j = 0; j <= i; j++) { if (j == 0 || i == j || i==n-1 ) printf("* "); else printf(" "); } printf("\n"); } } }
那麼我們可以從以上知識嘗試一下自己打出一個菱形以及空心菱形
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<math.h> int main() { int i = 0,j = 0; int n; while (~scanf("%d",&n))//在這的n我們必須保證是奇數 { for (i = 0; i < n; i++) { for (j = 0; j < abs(n / 2 - i); j++) printf(" "); for (j = 0; j < n - 2 * abs(n / 2 - i); j++) printf("*"); printf("\n"); } } return 0;
為了更好的理解,筆者微微修改了以上程式碼
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<math.h> #include<Windows.h> int main() { int i = 0,&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://www.jb51.net/article/202654.htm
在這筆者再提供一個由字元組成的三角形
#include<stdio.h> int main() { int i,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; }
最後可以大家可以嘗試一下自己列印空心菱形以及由字元構成的圖形
到此這篇關於利用C語言如何實現一些簡單圖形列印的文章就介紹到這了,更多相關C語言簡單圖形的列印內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!