目錄
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比恒山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式恒山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋恒山地區(qū)。費用合理售后完善,十年實體公司更值得信賴。文章目錄
前言
一、打印金字塔(等腰三角形)
1.圖案
2.代碼
二、打印菱形(兩個三角形拼在一起)
1.圖案
2.代碼
三.打印V形?
1.圖案?
2.代碼
四.打印(倒著的)V?
1.圖案?
2.代碼
總結
使用C語言打印圖形,金字塔(等腰三角形),菱形(用兩個等腰三角形上下拼在一起),V形(有正V和倒V)。
所編寫的代碼是可以改變行數(shù)的,在運行時,輸入行數(shù),就可以打印出來!當然也可以直接用printf打印出來,但是行數(shù)就不可以更改了。這里是前者啊。
我們要打印出來如圖所示的圖案。
這里我們可以找到規(guī)律:第一行是1個,第二行是3個,以此類推1,3,5,7,9.........?(自己想一想怎么得到這些數(shù))。
然后我們可以發(fā)現(xiàn)圖案前面空格的規(guī)律:第一行6個,第二行5個,以此類推6,5,4,3,2,1,0(再想一想這要怎么得到)。
2.代碼#includeint main()
{
int i = 0;
int j = 0;
int n = 0;
int s = 0;
printf("請輸入行數(shù):");
scanf("%d", &n);
for (i = 0; i< n; i++)//行數(shù)
{
for (j = 1; j< n - i; j++)//每一行之前的空格
{
printf(" ");
}
for (s = 0; s< i * 2 + 1; s++)//打印星號
{
printf("*");
}
printf("\n");
}
}
前面第一步先建立變量,然后要確定行數(shù)(n)這里使用scanf()來確定。有了行數(shù)之后就要打印每一行之前的空格,是依次遞減的,這里用(n-i)就可以得到6.5.4.3.2.1.0。
空格好了之后就是打印星號部分,根據(jù)1,3,5,7,9我們可以找到規(guī)律,每一個數(shù)都是(i*2+1)得到的,例如:i=0,那么i*2+1=1。
最后每打印一行,最后都進行換行。
二、打印菱形(兩個三角形拼在一起) 1.圖案我們要打印出來下圖的菱形。
首先還是要找一下規(guī)律,這個菱形是由一個三角形和一個倒三角拼成的圖案。在上面我們已經(jīng)知道了三角形如何打印,那么倒著的三角形怎么解決呢?(自己認真想一想)?
在這里我們可以發(fā)現(xiàn),要想打印它,空格和星號的順序是反著的。規(guī)律也就相反了!?
空格是:0,1,2,3,4,5,6。星號是11,9,7,5,3,1。?
#includeint main()
{
int i = 0;
int j = 0;
int n = 0;
int s = 0;
printf("請輸入行數(shù):");
scanf("%d", &n);
for (i = 0; i< n; i++)//行數(shù)
{
for (j = 1; j< n - i; j++)//每一行之前的空格
{
printf(" ");
}
for (s = 0; s< i * 2 + 1; s++)//打印星號
{
printf("*");
}
printf("\n");
}
for (i = 1; i< n; i++)//i=1,避免行重復
{
for (j = 0; j< i ; j++)
{
printf(" ");
}
for (s = 0; s< 2 * (n - i) - 1; s++)
{
printf("*");
}
printf("\n");
}
return 0;
}
上面的三角形和第一個圖案相同,重點是第二個倒三角!?
首先還是先確定行數(shù)(n), 為了避免行數(shù)的重復,這里i從1開始。然后是每行星號之前的空格,這里我們直接使用(j
最后就是打印星號,根據(jù)從大到小的規(guī)律:11,9,7,5,3,1。每個數(shù)都可以用2*(n-i)-1,得到,并且依次遞減。?
根據(jù)前面的兩個圖形,我們也總結了一定的經(jīng)驗。(這里可以認真仔細的想一想)?
大概可以分為3部分:每行之前的空格,中間的空格,兩邊的星號?。ū容^難的便是中間部分的空格)?
2.代碼int main()
{
int i = 0;
int j = 0;
int n = 0;
int s = 0;
printf("請輸入行數(shù):");
scanf("%d", &n);
for (i = 0; i< n; i++)//行數(shù)
{
for (j = 0; j< i; j++)//每行之前的空格
{
printf(" ");
}
printf("*");
for (s = 0; s< 2 * (n - i-1) - 1; s++)//打印中間的空格
{
printf(" ");
}
if (2 * (n - i - 1) - 1 >0)//避免最后一行星號重復
{
printf("*");
}
printf("\n");
}
return 0;
}
看完這個,是不是感覺和倒三角差不多,中間變成空格了!
第一步還是先確定變量,和行數(shù)。第二步就是每行之前的空格0,1,2,3,4,5,6........,直接用(j
第三步就是中間的空格,看過之后可以發(fā)現(xiàn)中間空格是:13,11,9,7,5,3,1,0。根據(jù)之前的經(jīng)驗我們找規(guī)律,行數(shù)(n)-i-1再乘2可以得到每行的數(shù)是?14,12,10......并不是我們想要的數(shù),但是只要在后面-1,就可以得到數(shù)了。主要還是用行數(shù)-當前的行數(shù),再根據(jù)所得的結果進行加或減,來求得我們所需要的數(shù)字!
中間空格完成之后,再跟上星號。但是有一點要注意:就是最后一行星號重復的問題,如果不解決就無法打印出來,這里會多一個。
所以我們加上條件來完成:if (2 * (n - i - 1) - 1 >0),大于0,就進行打印,當最后一行等于0時,條件不成立,就不執(zhí)行打印。
四.打印(倒著的)V? 1.圖案?這個要將V反過來打印,每行之前的空格,星號,中間的空格,都要做一定的修改來完成。?
圖形的規(guī)律還是可以找到的。?
2.代碼這里是重新寫的一段,和上一個分開了。?
int main()
{
int i = 0;
int j = 0;
int n = 0;
int s = 0;
printf("請輸入行數(shù):");
scanf("%d", &n);
for (i = 0; i< n; i++)//行數(shù)
{
for (j = 1; j< n - i; j++)//打印每行之前的空格
{
printf(" ");
}
if (n - i< n)//避免第一行星號重復
{
printf("*");
}
for (s = 0; s< i*2-1; s++)//打印中間的空格
{
printf(" ");
}
printf("*");//打印星號
printf("\n");
}
return 0;
}
這里每行之前的空格用(j 中間空格從小到大:0,1,3,5,7,9,11,13。用(i*2-1)?可以得到,最后跟著打印每行的星號然后換行就完成了!?。。。。?/p> 這里用C語言打印了幾個圖形,根據(jù)行和列來找到規(guī)律,進行打印。最好是多看一看,找到它的規(guī)律,就很好的打印出來了! 當然這里只是其中的一種方法,如果有更好的方法可以留言互相交流! 你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文題目:C語言打印金字塔,菱形,V形圖案-創(chuàng)新互聯(lián)
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、手機網(wǎng)站建設、外貿(mào)建站、虛擬主機、品牌網(wǎng)站設計、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源:
創(chuàng)新互聯(lián)
總結
標題鏈接:http://jinyejixie.com/article2/pesic.html
猜你還喜歡下面的內(nèi)容