欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用C語(yǔ)言如何打印一個(gè)等腰三角形

 更新時(shí)間:2022年11月14日 11:01:00   作者:studying_pxy  
這篇文章主要介紹了用C語(yǔ)言如何打印一個(gè)等腰三角形,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C語(yǔ)言打印一個(gè)等腰三角形

想要打印一個(gè)等腰三角形,首先試著打印一個(gè)實(shí)心的直角三角形。這里統(tǒng)一使用“*”符號(hào)打印。

通過(guò)觀察直角三角形,我們可以得出,想要打印一個(gè)實(shí)心的直角三角形,應(yīng)該是第一行打印一個(gè)*,然后第二行打印兩個(gè)*,以此類推,想要打印多大(多少行)的直角三角形都可以,只要控制一下變量就可以。

如圖所示的一個(gè)3行的直角三角形:

*
**
***

想要得到上圖的圖形,代碼如下:

#include <stdio.h>
int main()
{
	int i,j;
	//1.控制行數(shù)
	for(i=1;i<=3;i++)
	{
		//2.控制每行打印的個(gè)數(shù)
		for(j=1;j<=i;j++)
		{
			printf("*");
		}
		//3.換行
		printf("\n");
	}
	return 0;
}

此時(shí),如果我們想要打印一個(gè)n行的直角三角形,該如何改代碼呢?

其實(shí)很簡(jiǎn)單,就是定義一個(gè)變量,讓該變量來(lái)控制我們最外面的循環(huán)的次數(shù),即行數(shù)。并且讓計(jì)算機(jī)來(lái)接收我們輸入的變量的值,由此來(lái)達(dá)成我們想要打印多大的直角三角形就可以得到多大的直角三角形。

代碼如下:

#include <stdio.h>
int main()
{
	int x;//定義的一個(gè)變量,來(lái)人為控制行數(shù)
	printf("請(qǐng)輸入你想要打印的直角三角形的行數(shù):\n");
	scanf("%d",&x);//接收鍵盤輸入的值
	int i,j;
	//1.控制行數(shù)
	for(i=1;i<=x;i++)
	{
		//2.控制每行打印的個(gè)數(shù)
		for(j=1;j<=i;j++)
		{
			printf("*");
		}
		//3.換行
		printf("\n");
	}
	return 0;
}

執(zhí)行結(jié)果如下(我這里用的是虛擬機(jī),是Linux操作系統(tǒng),所以編譯執(zhí)行的方式有點(diǎn)不一樣,如果是一般的編譯軟件,直接編譯運(yùn)行run就好):

china@ubuntu:/mnt/hgfs/302$ gcc test.c -o test
china@ubuntu:/mnt/hgfs/302$ ./test
請(qǐng)輸入你想要打印的直角三角形的行數(shù):
8
*
**
***
****
*****
******
*******
********

好啦,回歸正題,我們是要打印一個(gè)等腰三角形噻。那么通過(guò)上面的幾個(gè)代碼,你有想法了嗎?

有的話,就先不要接著看下去了,先自己去想好自己的思路,然后實(shí)踐一下,代碼出錯(cuò)是正常的,不要放棄,一般的編譯軟件有錯(cuò)誤提示,可以試著去改一改自己的錯(cuò)誤,英文看不懂的家人們,就去用電腦翻譯一下。

實(shí)在不會(huì)的家人們就接著看下去吧,我的思路不一定是唯一的方法哦,可能還有更簡(jiǎn)便的方法,如果有大佬有更好的代碼,可以在評(píng)論區(qū)po一下,菜鳥博主前來(lái)學(xué)習(xí)請(qǐng)教!??!

come back,我的思路是這樣的,通過(guò)觀察吧,我發(fā)現(xiàn)一個(gè)等腰三角形的打印有點(diǎn)類似直角三角形打印,如圖:

     * 
    * * 
   * * * 
  * * * * 
 * * * * * 
* * * * * * 

首先看圖,你是不是發(fā)現(xiàn),其實(shí)等腰三角形打印的規(guī)律也是第一行打印一個(gè)*,第二行打印兩個(gè)*,然后以此類推,是不是就是上面那個(gè)直角三角形相同的兩個(gè)for循環(huán)就可以解決?。?!蕪湖!別高興太早,不是直接Ctrl C+Ctrl V就完事了,你沒(méi)發(fā)現(xiàn)這里的每個(gè)*中間還有空格嗎,親?

哦豁!是這樣誒!那還不簡(jiǎn)單,直接把打印“*”換成“* ”??!真是個(gè)小聰明!沒(méi)錯(cuò)就是這樣滴!不過(guò)單單是這樣還不是等腰三角形,那還是個(gè)直角三角形,只不過(guò)撐開了點(diǎn),笑死。因?yàn)檫€有非常關(guān)鍵的一步,那就是,在打印*前,還有空格嘞,你再看看,他們有什么規(guī)律(睜大眼睛仔細(xì)看)。

咦~好像空格在慢慢減少,而且第一行是總行數(shù)減一個(gè)空格,然后每一行減一個(gè)空格,然后直到最后一行,就沒(méi)啦!歐耶!回答正確!所以只需要在你打印*前再寫一個(gè)for循環(huán)控制每一行打印空格的個(gè)數(shù)就莫問(wèn)題啦~(其中各個(gè)變量的關(guān)系你要自己仔細(xì)體會(huì)哦)

#include <stdio.h>
int main()
{
	int m,n,i,j,k;
	printf("請(qǐng)輸入m:");
	scanf("%d",&m);
	n=m;
	for(i=1;i<=m;i++)//控制等腰三角形的高度
	{	
		for(j=n-1;j>0;j--)
			{
				printf(" ");//輸出每一行最前面的空格	
			}
			n--;
		for(k=1;k<=i;k++)//打印每一行的空格后的東西
		{
			
			printf("* ");
		}
		printf("\n");//打印下一行
	}
	return 0;
}

執(zhí)行結(jié)果如下:

china@ubuntu:/mnt/hgfs/302$ gcc test3.c -o test3
china@ubuntu:/mnt/hgfs/302$ ./test3
請(qǐng)輸入m:9
        * 
       * * 
      * * * 
     * * * * 
    * * * * * 
   * * * * * * 
  * * * * * * * 
 * * * * * * * * 
* * * * * * * * * 

看完記得自己去實(shí)操一下哦~

最后的最后,有個(gè)問(wèn)題,希望有大佬能解答一下:就是我常常在想,大佬從看見一個(gè)問(wèn)題到寫出一個(gè)代碼,整個(gè)過(guò)程是怎么樣的?因?yàn)槲腋杏X我自己經(jīng)常是先想思路,然后有點(diǎn)思路就開始敲代碼實(shí)踐,然后就解決了。

但是我感覺和別人說(shuō)又不一定能說(shuō)清楚,就很懷疑自己,不知道自己到底是會(huì)嘞,還是不會(huì),或者說(shuō)到底是不是自己瞎貓碰上死耗子,猜對(duì)的,反正就很苦惱。

C語(yǔ)言打印倒等腰三角形

學(xué)習(xí)c語(yǔ)言使用控制臺(tái)打印圖形是每一個(gè)初學(xué)者都會(huì)做的事,下面是站在初學(xué)者的角度編寫的代碼,簡(jiǎn)單易懂。

#include<stdio.h>
 
int main()
{
	while(1)//死循環(huán),可以多次輸入
	{ int n;
	printf("請(qǐng)輸入三角形的高:");
	scanf("%d", &n);//系統(tǒng)可能會(huì)報(bào)錯(cuò),可以改成scanf_s
 
	for (int i=1; i <=n; i++)//打印行
	{
		for (int j=1 ; j <= 2 * n -1; j++)//打印列
		{ 
			
			if ((i - j <= 0) && (i + j <= (2 * n)))//對(duì)等腰三角形的兩邊進(jìn)行限制
			{
				printf("*");
				
			}
			
			else 	
			    printf(" ");//填充三角形之外的空余
	    }
		printf("\n");
	}
	}
 
	return 0;
}

運(yùn)行結(jié)果如下

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++ BloomFilter布隆過(guò)濾器應(yīng)用及概念詳解

    C++ BloomFilter布隆過(guò)濾器應(yīng)用及概念詳解

    布隆過(guò)濾器是由布?。˙urton Howard Bloom)在1970年提出的 一種緊湊型的、比較巧妙的概率型數(shù)據(jù)結(jié)構(gòu),特點(diǎn)是高效地插入和查詢,可以用來(lái)告訴你 “某樣?xùn)|西一定不存在或者可能存在”,它是用多個(gè)哈希函數(shù),將一個(gè)數(shù)據(jù)映射到位圖結(jié)構(gòu)中
    2023-03-03
  • Socket通信原理和實(shí)踐

    Socket通信原理和實(shí)踐

    本文詳細(xì)講解了Socket通信原理和實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • C 語(yǔ)言結(jié)構(gòu)體的使用方法

    C 語(yǔ)言結(jié)構(gòu)體的使用方法

    這篇文章主要介紹了C 語(yǔ)言結(jié)構(gòu)體的使用,文章介紹了結(jié)構(gòu)體定義的多種類型,想具體了解的朋友請(qǐng)看下面文章的內(nèi)容
    2021-09-09
  • Cocos2d-x UI開發(fā)之CCControlSwitch控件類使用實(shí)例

    Cocos2d-x UI開發(fā)之CCControlSwitch控件類使用實(shí)例

    這篇文章主要介紹了Cocos2d-x UI開發(fā)之CCControlSwitch控件類使用實(shí)例,本文代碼中含大量注釋講解了CCControlSwitch控件類的使用,需要的朋友可以參考下
    2014-09-09
  • C語(yǔ)言詳細(xì)分析講解流程控制語(yǔ)句用法

    C語(yǔ)言詳細(xì)分析講解流程控制語(yǔ)句用法

    C語(yǔ)言語(yǔ)句的執(zhí)行默認(rèn)順序執(zhí)行(從上往下依次執(zhí)行),編程語(yǔ)言一般除了默認(rèn)的順序執(zhí)行以外,還提供分支執(zhí)行和循環(huán)執(zhí)行的語(yǔ)法,讓我們一起來(lái)看看
    2022-05-05
  • c++優(yōu)先隊(duì)列用法知識(shí)點(diǎn)總結(jié)

    c++優(yōu)先隊(duì)列用法知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于c++優(yōu)先隊(duì)列用法知識(shí)點(diǎn)總結(jié)內(nèi)容,需要的朋友可以參考學(xué)習(xí)下。
    2020-02-02
  • C語(yǔ)言實(shí)現(xiàn)紅黑樹的實(shí)例代碼

    C語(yǔ)言實(shí)現(xiàn)紅黑樹的實(shí)例代碼

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)紅黑樹的實(shí)例代碼,有需要的朋友可以參考一下
    2013-12-12
  • 基于字符串移位包含的問(wèn)題詳解

    基于字符串移位包含的問(wèn)題詳解

    本篇文章是對(duì)字符串移位包含的問(wèn)題的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 詳解C語(yǔ)言內(nèi)核字符串轉(zhuǎn)換方法

    詳解C語(yǔ)言內(nèi)核字符串轉(zhuǎn)換方法

    在內(nèi)核開發(fā)模式下,初始化字符串也需要調(diào)用專用的初始化函數(shù),如下分別初始化ANSI和UNCODE字符串,本文我們就來(lái)看看代碼是如何實(shí)現(xiàn)的
    2022-09-09
  • 使用C++程序獲取新浪行情數(shù)據(jù)的方法

    使用C++程序獲取新浪行情數(shù)據(jù)的方法

    這篇文章介紹了在一定的周期范圍內(nèi)去抓取新浪中行情數(shù)據(jù),通過(guò)更新數(shù)據(jù)來(lái)緩解構(gòu)造模擬數(shù)據(jù)與真實(shí)數(shù)據(jù)差異性,感興趣的朋友可以了解一下
    2015-07-07

最新評(píng)論