利用C語(yǔ)言如何實(shí)現(xiàn)一些簡(jiǎn)單圖形的打印
1#define_CRT_SECURE_NO_WARNINGS 1
因?yàn)楣P者采用的是VS的編譯環(huán)境所以有了上面的這一句話
我們都知道平面圖形是由一條條線段構(gòu)成,所以我們就先實(shí)現(xiàn)線段的打印
//打印自定義長(zhǎng)度的線段 #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;
那么,線段學(xué)會(huì)了,我們就可以進(jìn)行簡(jiǎn)單圖形的打印了
首先我們從正方形開(kāi)始:
//打印自定義邊長(zhǎng)的正方形 #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; }
接下來(lái)是三角形:(筆者準(zhǔn)備了六種三角形)
//打印三角形—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, i = 0, n; while (~scanf("%d", &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, i = 0, n; while (~scanf("%d", &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, i = 0, n; while (~scanf("%d", &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, i = 0, n; while (~scanf("%d", &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, i = 0, n; while (~scanf("%d", &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; }
現(xiàn)在就可以嘗試一下圖形的挖空了
我們?nèi)匀槐3种暗捻樞驈恼叫蔚饺切危?/p>
//空心正方形 #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"); } } }
那么我們可以從以上知識(shí)嘗試一下自己打出一個(gè)菱形以及空心菱形
#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我們必須保證是奇數(shù) { 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, 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; }
此外在提供一個(gè)打印菱形的代碼
#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開(kāi)始的,要是從n-1開(kāi)始會(huì)出現(xiàn)兩行相同的情況 { for (j = i; j < n - 1; j++) printf(" "); for (j = 0; j < 2 * i + 1; j++) printf("*"); printf("\n"); }//下邊部分 } return 0; } }
當(dāng)然,肯定要在這給幾個(gè)筆者參考過(guò)的文章
參考: http://chabaoo.cn/article/202654.htm
在這筆者再提供一個(gè)由字符組成的三角形
#include<stdio.h> int main() { int i, j, n, k = 0; char ch = 'A'; printf("請(qǐng)輸入行數(shù):"); 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; }
最后可以大家可以嘗試一下自己打印空心菱形以及由字符構(gòu)成的圖形
到此這篇關(guān)于利用C語(yǔ)言如何實(shí)現(xiàn)一些簡(jiǎn)單圖形打印的文章就介紹到這了,更多相關(guān)C語(yǔ)言簡(jiǎn)單圖形的打印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Visual?Studio2022下Opencv的配置圖文教程
本文主要介紹了Visual?Studio2022下Opencv的配置圖文教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07C++實(shí)現(xiàn)拼圖游戲代碼(graphics圖形庫(kù))
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)拼圖游戲代碼,帶有g(shù)raphics圖形庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05C語(yǔ)言實(shí)現(xiàn)的順序表功能完整實(shí)例
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)的順序表功能,結(jié)合完整實(shí)例形式分析了C語(yǔ)言順序表的創(chuàng)建、添加、刪除、排序、合并等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例
今天小編就為大家分享一篇關(guān)于C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12C語(yǔ)言在輸入輸出時(shí)遇到的常見(jiàn)問(wèn)題總結(jié)
大家在平時(shí)的做題中是否會(huì)遇到和我一樣的煩惱,題目的代碼已經(jīng)基本完成,但是在輸出時(shí)候,總是和題目給出的樣例輸出格式不同?,導(dǎo)致題目不能通過(guò)。為了解決這一煩惱,我總結(jié)了以下幾點(diǎn),需要的可以參考一下2022-09-09Qt實(shí)現(xiàn)簡(jiǎn)易計(jì)時(shí)器的示例代碼
計(jì)時(shí)器實(shí)現(xiàn)四個(gè)功能:開(kāi)始計(jì)時(shí)、停止計(jì)時(shí)、暫停計(jì)時(shí)以及打點(diǎn)。當(dāng)點(diǎn)擊暫停時(shí),開(kāi)始按鈕和停止按鈕無(wú)法點(diǎn)擊。當(dāng)點(diǎn)擊停止時(shí),開(kāi)始按鈕和暫停按鈕無(wú)法點(diǎn)擊,此時(shí)停止按鈕變?yōu)榍辶?。本文將用Qt實(shí)現(xiàn)這樣的一個(gè)計(jì)時(shí)器,需要的可以參考一下2022-06-06Visual?Studio?2022?安裝低版本?.Net?Framework的圖文教程
這篇文章主要介紹了Visual?Studio?2022?如何安裝低版本的?.Net?Framework,首先打開(kāi)?Visual?Studio?Installer?可以看到vs2022?只支持安裝4.6及以上的版本,那么該如何安裝4.6以下的版本,下面將詳細(xì)介紹,需要的朋友可以參考下2022-09-09C語(yǔ)言中程序環(huán)境和預(yù)處理的詳細(xì)圖文講解
這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中程序環(huán)境和預(yù)處理的相關(guān)資料,我們寫(xiě)的C語(yǔ)言代碼,從運(yùn)行,到在屏幕上生成結(jié)果,經(jīng)歷了比較復(fù)雜的過(guò)程,需要的朋友可以參考下2023-02-02