21天C語言代碼訓(xùn)練營(第一天)

為了配合專題C語言從零開始半醉,今天開始一個新的專題《21天C語言代碼訓(xùn)練營》谚中。這個專題重點(diǎn)針對從零開始系列進(jìn)行練習(xí)題講解饰恕。以21天為一個周期牲览,為大家提供編程方面的實(shí)例講解墓陈。

最近,越來越多的初學(xué)者朋友在給我的郵件中提出這樣的問題:我在文章中講的東西他們都看懂了第献,但具體到自己寫代碼的時(shí)候卻完全不知道從何入手贡必。其實(shí)看懂知識點(diǎn)例程和真正學(xué)會寫代碼之間相差了好幾條街,我一再強(qiáng)調(diào)庸毫,學(xué)編程沒有捷徑仔拟,只有老老實(shí)實(shí)地敲代碼。對于文章中的例子飒赃,大家一定要達(dá)到自己能夠完整的敲出來才行利花。當(dāng)然,這里并不是要求大家死記硬背盒揉,要求的是在懂得設(shè)計(jì)思路和程序語法的基礎(chǔ)上晋被,經(jīng)過自己的二次加工后重新實(shí)現(xiàn)的過程。

在這個專題中刚盈,我們以練習(xí)為主,講解為輔挂脑,力求尋找出一種幫助大家快速提高編碼能力的新玩法藕漱。也希望朋友們緊跟我的更新速度堅(jiān)持每天做練習(xí)欲侮,大家共同進(jìn)步。

歡迎大家每天前來打卡~


訓(xùn)練營規(guī)則

  • 每天出一道練習(xí)題肋联,請大家自己完成編碼
  • 第二天的文章中會告訴大家一種或幾種經(jīng)典解決方法
  • 完成練習(xí)的同學(xué)威蕉,歡迎大家把代碼貼在留言中
  • 如果有問題,也請留言橄仍,我會找機(jī)會集中解答

希望這種手把手的方式能夠幫助大家盡快掌握C語言編程韧涨。


1. 例題

今天我們先來講解一道C語言的經(jīng)典例題,也是從零開始系列中的一道課后練習(xí)題侮繁。

請用控制臺程序繪制如下圖案虑粥。

循環(huán)經(jīng)典例題

2. 分析

這個題目是要求打印30行"*",每行打印的個數(shù)不同宪哩。通過這個信息娩贷,我們應(yīng)該立刻反映出運(yùn)用循環(huán)來完成。那么我們想想锁孟,在循環(huán)部分我們都學(xué)到了什么彬祖。

關(guān)于循環(huán),我首先會想到一些例題:

2.1 例題1

打印30個"*",每個"*"占一行品抽。

int i;
for (i = 0; i < 30; i++)
{
    printf("*\n");
}

2.2 例題2

打印一行"*",個數(shù)為30

int i;
for (i = 0; i < 30; i++)
{
    printf("*");
}

這兩個題目的代碼只差一個\n,結(jié)果卻完全不同储笑。掌握了這兩個例題,我們自然能夠完成下面這個例題了圆恤。

2.3 例題3

打印一個由"*"組成的30行30列的矩陣突倍。

int main()
{
    int i, j;
    for (i = 0; i < 30; i++)
    {
        for (j = 0; j < 30; j++)
        {
            printf("*");
        }
        printf("*\n");
    }

    return 0;
}

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

30*30矩陣

我們再把例3的要求改一改,要求如下

2.4 例題4

打印30行“*”哑了。第一行打印1個“*”赘方,第二行打印3個“*”,第三行打印5個“*”弱左,... 窄陡,第三十行打印59個“*”。

在前面的程序中拆火,我們用變量i控制行的循環(huán)跳夭,變量j控制列的循環(huán)。i的范圍029们镜,j的范圍029币叹。那么在例題4中,i和j有什么樣的關(guān)系呢模狭?

找規(guī)律
第一行 i = 0; j循環(huán)1次
第二行 i = 1; j循環(huán)3次
第三行 i = 2; j循環(huán)5次
... ... ...
第三十行 i = 29; j循環(huán)59次

于是得到這樣一個關(guān)系:

規(guī)律
第n行 i = n - 1; j循環(huán)2i + 1次

那么如何實(shí)現(xiàn)循環(huán)2i + 1次呢颈抚,就是讓j從0到2i + 1。

按照這個思路嚼鹉,可以得到下面的代碼:

#include <stdio.h>

#define LINE 30

int main()
{
    int i, j;
    for (i = 0; i < LINE; i++)
    {
        for (j = 0; j < 2 * i + 1; j++)
        {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

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

例題4

這里要說一個問題贩汉,其實(shí)for循環(huán)有兩種常見形式:

for (i = 0; i < n; i++)

for (i = 1; i <= n; i++)

這種寫法執(zhí)行的次數(shù)相同驱富,可以相互代替。大部分C語言程序員喜歡第一種方式匹舞,因?yàn)閿?shù)組的下標(biāo)訪問是從0開始的褐鸥,這樣寫更方便。目前大家可以選擇自己喜歡的方法赐稽。

好了叫榕,回到例題中來。現(xiàn)在我們的代碼距離目標(biāo)輸出已經(jīng)很接近了姊舵,缺少的是在每行“*”之前需要輸入不同數(shù)量的空格晰绎。我們分析i和空格數(shù)量,可以得到如下關(guān)系:

每行輸出LINE - i個空格

于是蠢莺,我們得到了最終的實(shí)現(xiàn)程序寒匙。

3. 答案

#include <stdio.h>

#define LINE 30

int main()
{
    int i, j;
    for (i = 0; i < LINE; i++)
    {
        for (j = 0; j < (LINE - i); j++)
        {
            printf(" ");
        }

        for (j = 0; j < 2 * i + 1; j++)
        {
            printf("*");
        }
        printf("\n");
    }

     return 0;
}

運(yùn)行一下這段代碼,你會看到打印結(jié)果就是最前面的那張圖躏将。

4. 課后練習(xí)

自己編寫代碼锄弱,打印出下面這張圖。

菱形

明天會講解這個程序祸憋,請大家先做練習(xí)会宪。歡迎將自己的程序貼在留言中。

我是天花板蚯窥,讓我們一起在軟件開發(fā)中自我迭代掸鹅。
如有任何問題,歡迎與我聯(lián)系拦赠。


下一篇:21天C語言代碼訓(xùn)練營(第二天)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末巍沙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子荷鼠,更是在濱河造成了極大的恐慌句携,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件允乐,死亡現(xiàn)場離奇詭異矮嫉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)牍疏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門蠢笋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鳞陨,你說我怎么就攤上這事昨寞。” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵编矾,是天一觀的道長熟史。 經(jīng)常有香客問我馁害,道長窄俏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任碘菜,我火速辦了婚禮凹蜈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘忍啸。我一直安慰自己仰坦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布计雌。 她就那樣靜靜地躺著悄晃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凿滤。 梳的紋絲不亂的頭發(fā)上妈橄,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音翁脆,去河邊找鬼眷蚓。 笑死,一個胖子當(dāng)著我的面吹牛反番,可吹牛的內(nèi)容都是我干的沙热。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼罢缸,長吁一口氣:“原來是場噩夢啊……” “哼篙贸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起枫疆,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤爵川,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后养铸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雁芙,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年钞螟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了兔甘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡鳞滨,死狀恐怖洞焙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤澡匪,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布熔任,位于F島的核電站,受9級特大地震影響唁情,放射性物質(zhì)發(fā)生泄漏疑苔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一甸鸟、第九天 我趴在偏房一處隱蔽的房頂上張望惦费。 院中可真熱鬧,春花似錦抢韭、人聲如沸薪贫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞧省。三九已至,卻和暖如春鳍贾,著一層夾襖步出監(jiān)牢的瞬間鞍匾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工贾漏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留候学,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓纵散,卻偏偏與公主長得像梳码,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子伍掀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 問題鏈接 自己編寫代碼掰茶,打印出下面這張圖。 我的代碼如下 完
    Hans941閱讀 390評論 0 4
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,498評論 25 707
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法蜜笤,類相關(guān)的語法濒蒋,內(nèi)部類的語法,繼承相關(guān)的語法把兔,異常的語法沪伙,線程的語...
    子非魚_t_閱讀 31,581評論 18 399
  • 常聽學(xué)校里的人盛傳著围橡,每一年的櫻花季節(jié),一所學(xué)校里面的一顆櫻花樹就會飄落血色的櫻花缕贡。 “林衔淌冢”一個身穿白色的連衣裙...
    林希閱讀 1,188評論 0 0
  • 農(nóng)村致富的貓膩 一說致富拣播,我們總是說勤勞致富。你好好想一想收擦,勤勞能致富贮配?善良老實(shí)腦子又不大靈活的農(nóng)民是一輩子都富裕...
    卜玉霞閱讀 337評論 1 0