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

C語言之格式化屏幕輸出詳解

 更新時間:2021年11月12日 14:35:18   作者:Tkpluto  
這篇文章主要介紹了C語言之格式化屏幕輸出的相關(guān)資料,需要的朋友可以參考下,小編覺得這篇文章寫的還不錯,希望能夠給你帶來幫助

在一些問題中,問題經(jīng)常規(guī)定了屏幕輸出的格式,讓我們以固定的格式編程輸出某些圖案或表格。我們分別以下面三個例子來說明格式化屏幕輸出的方法。

題目1:請打印輸出以下圖案。

我們當(dāng)然可以用最笨的方法,直接按照題目樣式暴力輸出:

printf("   *\n");
printf("  ***\n");
printf(" *****\n");
printf("*******\n");
printf(" *****\n");
printf("  ***\n");
printf("   *\n");

那多沒意思啊😅,玩不起嗎?

如果題目要求輸出菱形的大小可以改變,那不就寄了嗎?

仔細(xì)思考,這種格式化輸出的圖案都是非常整齊的,我們當(dāng)然需要用到循環(huán)語句。

首先,兩層for循環(huán)是跑不掉的,最外層的for循環(huán)用來控制輸出行數(shù),內(nèi)層的for循環(huán)用來控制空格以及'*'。剛開始的時候,我們最好先自己動手畫一下,分析一下圖案的組成。

我們發(fā)現(xiàn),前四行中,'*'的個數(shù)是以奇數(shù)往下遞增的,而后四行'*'的個數(shù)是逐行往下遞減的,那么我們只要先處理好前4行的圖案,后3行稍加修改即可得到。

首先我們看看空格與'*'以及行數(shù)之間的數(shù)量關(guān)系:

行數(shù) 空格 *
1 3 1
2 2 3
3 1 5
4 0 7
…… …… ……
n N-n(N為遞增總行數(shù)) 2*n-1

很顯然,現(xiàn)在問題就變成了一個小學(xué)生的找規(guī)律問題,因此我們可以編寫以下代碼:

for (int n=1; n<=4; n++)//n為行數(shù),4為總行數(shù)N
{
    for (int i=1; i<=4-n; i++)//輸出'*'前的空格
    {
        printf(" ");
    }
    for (int i=1; i<=2*n-1; i++)//輸出'*'
    {
        printf("*");
    }
    printf("\n");//輸出完一行后要換行
}

運行結(jié)果為:

說明我們的想法是對的!那么剩下的3行(N-1行)只需要對以上代碼稍加修改就行了。修改過后,我們可以得到:

for (int n=1; n<=4; n++)//n為行數(shù),4為遞增總行數(shù)N
{
    for (int i=1; i<=4-n; i++)//輸出'*'前的空格
    {
        printf(" ");
    }
    for (int i=1; i<=2*n-1; i++)//輸出'*'
    {
        printf("*");
    }
    printf("\n");//輸出完一行后要換行
}
for (int n=1; n<=3; n++)//n為行數(shù),3為遞減總行數(shù)N-1
{
    for (int i=1; i<=n; i++)//輸出'*'前的空格
    {
        printf(" ");
    }
    for (int i=1; i<=7-2*n; i++)//輸出'*',7為遞增行中最后一行(第N行)的'*'的數(shù)量2*N-1
    {
        printf("*");
    }
    printf("\n");//輸出完一行后要換行
}

運行結(jié)果為:

好耶!現(xiàn)在我們已經(jīng)得到了我們想要的結(jié)果。那么隨著菱形的大小改變時,我們只要相應(yīng)地改變N的大小,即可輸出對應(yīng)的圖案。

題目2:分別按如下三種形式,編程輸出九九乘法表。

同樣,暴力方法是肯定可以做出來的😅,這里就不再贅述。

首先第一步,我們要用暴力方法把九九乘法表的表頭輸出出來:

printf("1  2  3  4  5  6  7  8  9\n");
printf("-  -  -  -  -  -  -  -  -\n");

這三個表應(yīng)該是第一種格式比較簡單,因為他沒有過多的較難處理的空格。

事實上,我們只要用兩層循環(huán),讓九九乘法表的行和列的表頭遍歷1~9,并把他們相乘即可得到表中的每一個值(這里行的表頭隱藏了)。(我所說的行和列的表頭的意思是下表中的這些數(shù)字):

123456789123456789

因此我們有:

for (int i=1; i<=9; i++)//行的表頭遞增
{
    for (int j=1; j<=9; j++)//列的表頭遞增
    {
        printf("%3d", i * j);
    }
    printf("\n");//每輸出完一行后要換行
}

這樣我們就能得到第一個表:

我們來看第二個表:第二個表為左下三角形,右上三角形無輸出(或輸出為空格)。

尋找一下規(guī)律,不難發(fā)現(xiàn),當(dāng)列的表頭小于等于行的表頭(j<=i)時,才會輸出數(shù)字。

因此我們可以在第一種情況下稍作修改:

for (int i=1; i<=9; i++)//行的表頭遞增
{
    for (int j=1; j<=9; j++)//列的表頭遞增
    {
        if (j<=i)
        {
            printf("%3d", i * j);
        }
    }
    printf("\n");//每輸出完一行后要換行
}

即可得到第二個表:

類似地,第三個表是當(dāng)列的表頭大于等于行的表頭(j>=i)時才輸出數(shù)字,當(dāng)列的表頭小于行的表頭(j<i)時輸出空格。值得注意的是,因為我們用的是%3d,所以每次應(yīng)輸出3個空格。在第一種情況下稍作修改,得到如下代碼:

for (int i=1; i<=9; i++)//行的表頭遞增
{
    for (int j=1; j<=9; j++)//列的表頭遞增
    {
        if (j>=i)
        {
            printf("%3d", i * j);
        }
        else
        {
            printf("   ");
        }
    }
    printf("\n");//每輸出完一行后要換行
}

即可得到第三個表:

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C++發(fā)郵件簡單實例詳解

    C++發(fā)郵件簡單實例詳解

    這篇文章主要為大家詳細(xì)介紹了C++發(fā)郵件的簡單實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • C語言銀行系統(tǒng)課程設(shè)計

    C語言銀行系統(tǒng)課程設(shè)計

    這篇文章主要為大家詳細(xì)介紹了C語言銀行系統(tǒng)課程設(shè)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 算法詳解之分治法具體實現(xiàn)

    算法詳解之分治法具體實現(xiàn)

    這篇文章主要介紹了算法詳解之分治法具體實現(xiàn),需要的朋友可以參考下
    2014-02-02
  • C++回調(diào)函數(shù)的理解和使用教程

    C++回調(diào)函數(shù)的理解和使用教程

    這篇文章主要給大家介紹了關(guān)于C++回調(diào)函數(shù)的理解和使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • C++中引用的使用總結(jié)

    C++中引用的使用總結(jié)

    以下是對C++中引用的使用進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • Microsoft?Visual?C++進(jìn)行調(diào)試的方法實現(xiàn)

    Microsoft?Visual?C++進(jìn)行調(diào)試的方法實現(xiàn)

    VS功能極其強(qiáng)大,使用極其便利,本文主要介紹了Microsoft?Visual?C++進(jìn)行調(diào)試的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • Qt視頻播放器的實現(xiàn)示例

    Qt視頻播放器的實現(xiàn)示例

    本文主要介紹了Qt視頻播放器的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • C語言五子棋小游戲?qū)崿F(xiàn)代碼

    C語言五子棋小游戲?qū)崿F(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了C語言五子棋小游戲?qū)崿F(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語言實現(xiàn)實驗設(shè)備管理系統(tǒng)

    C語言實現(xiàn)實驗設(shè)備管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)實驗設(shè)備管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++算法實現(xiàn)leetcode 1252奇數(shù)值單元格數(shù)目

    C++算法實現(xiàn)leetcode 1252奇數(shù)值單元格數(shù)目

    這篇文章為大家主要介紹了C++實現(xiàn)leetcode 1252奇數(shù)值單元格的數(shù)目題解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評論