C語言打印金字塔,菱形,V形圖案-創(chuàng)新互聯(lián)

文章目錄

目錄

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比恒山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式恒山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋恒山地區(qū)。費用合理售后完善,十年實體公司更值得信賴。

文章目錄

前言

一、打印金字塔(等腰三角形)

1.圖案

2.代碼

二、打印菱形(兩個三角形拼在一起)

1.圖案

2.代碼

三.打印V形?

1.圖案?

2.代碼

四.打印(倒著的)V?

1.圖案?

2.代碼

總結(jié)


前言

使用C語言打印圖形,金字塔(等腰三角形),菱形(用兩個等腰三角形上下拼在一起),V形(有正V和倒V)。

所編寫的代碼是可以改變行數(shù)的,在運行時,輸入行數(shù),就可以打印出來!當(dāng)然也可以直接用printf打印出來,但是行數(shù)就不可以更改了。這里是前者啊。


一、打印金字塔(等腰三角形) 1.圖案

我們要打印出來如圖所示的圖案。

這里我們可以找到規(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。

最后每打印一行,最后都進(jìn)行換行。

二、打印菱形(兩個三角形拼在一起) 1.圖案

我們要打印出來下圖的菱形。

首先還是要找一下規(guī)律,這個菱形是由一個三角形和一個倒三角拼成的圖案。在上面我們已經(jīng)知道了三角形如何打印,那么倒著的三角形怎么解決呢?(自己認(rèn)真想一想)?

在這里我們可以發(fā)現(xiàn),要想打印它,空格和星號的順序是反著的。規(guī)律也就相反了!?

空格是:0,1,2,3,4,5,6。星號是11,9,7,5,3,1。?

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");
	}

	for (i = 1; i< n; i++)//i=1,避免行重復(fù)
	{
		for (j = 0; j< i ; j++)
		{
			printf(" ");
		}
		for (s = 0; s< 2 * (n - i) - 1; s++)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

上面的三角形和第一個圖案相同,重點是第二個倒三角!?

首先還是先確定行數(shù)(n), 為了避免行數(shù)的重復(fù),這里i從1開始。然后是每行星號之前的空格,這里我們直接使用(j

最后就是打印星號,根據(jù)從大到小的規(guī)律:11,9,7,5,3,1。每個數(shù)都可以用2*(n-i)-1,得到,并且依次遞減。?


三.打印V形? 1.圖案?

根據(jù)前面的兩個圖形,我們也總結(jié)了一定的經(jīng)驗。(這里可以認(rèn)真仔細(xì)的想一想)?

大概可以分為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)//避免最后一行星號重復(fù)
		{
			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ù)-當(dāng)前的行數(shù),再根據(jù)所得的結(jié)果進(jìn)行加或減,來求得我們所需要的數(shù)字!

中間空格完成之后,再跟上星號。但是有一點要注意:就是最后一行星號重復(fù)的問題,如果不解決就無法打印出來,這里會多一個。

所以我們加上條件來完成:if (2 * (n - i - 1) - 1 >0),大于0,就進(jìn)行打印,當(dāng)最后一行等于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)//避免第一行星號重復(fù)
		{
			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)?可以得到,最后跟著打印每行的星號然后換行就完成了?。。。。?!


總結(jié)

這里用C語言打印了幾個圖形,根據(jù)行和列來找到規(guī)律,進(jìn)行打印。最好是多看一看,找到它的規(guī)律,就很好的打印出來了!

當(dāng)然這里只是其中的一種方法,如果有更好的方法可以留言互相交流!

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:C語言打印金字塔,菱形,V形圖案-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://www.muchs.cn/article2/pesic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、手機網(wǎng)站建設(shè)、外貿(mào)建站、虛擬主機、品牌網(wǎng)站設(shè)計Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計