iT邦幫忙

1

如何讓程式的輸出有複製貼上的效果

  • 分享至 

  • xImage

使用的程式語言是C
想請問有什麼辦法可以把以下程式碼的輸出複製出一個貼在其右邊呢?(如圖二)
自己目前的想法是把每行printf()利用迴圈做出複製的效果,但這樣迴圈就必須寫好幾個,而且現在的輸出只是簡易版,實際上的圖形更為複雜,感覺用迴圈效益不是很好

#include <stdio.h>
void green(void);
void yellow(void);
void blue(void);
int main()
{
    for (int i=0;i<5;i++)
    {
        printf("*");
    }
    printf("\n");
    for(int i=0;i<5;i++)
    {
        for (int j=0;j<i+1;j++)
        {
            printf(" ");
        }
        printf("*");
        green();
        yellow();
        blue();
        printf("*\n");
    }
    printf("      *****\n");
    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20221020/20137686BXJrn6I7vP.jpg
圖一

https://ithelp.ithome.com.tw/upload/images/20221020/20137686x3Ydz8qX4U.jpg
圖二

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
wiseguy
iT邦超人 1 級 ‧ 2022-10-21 00:45:00
最佳解答

這看起來最簡單的方式,就是在特定的位置,多套一層兩次的迴圈就行了。如我改寫你的程式多加的 k 迴圈。其他你也可以把要輸出的第一遍先放到字串陣列中,然後再 copy 一遍。不過這種就麻煩多了。我覺得你還是玩最簡單的 for 迴圈就好。

#include <stdio.h>
void green(void);
void yellow(void);
void blue(void);
int main()
{
    int i;
    for (int k = 0; k < 2; k++)
    {
        for (i = 0; i < 5; i++)
        {
            printf("*");
        }
        printf(" ");
    }
    printf("\n");
    
    for (i = 0; i < 5; i++)
    {
        for (int j = 0; j < i + 1; j++)
        {
            printf(" ");
        }
        for (int k = 0; k < 2; k++)
        {
            printf("*");
            green();
            yellow();
            blue();
            printf("* ");
        }
        printf("\n");
    }

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

瞭解,謝謝你的建議

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-10-21 10:41:00

Input/Process/Output
一般程式設計的重點都在於 Process

方便請教是那所學校的什麼系的課程
會如此在乎輸入值的類型
和輸出能否複製貼上
/images/emoticon/emoticon19.gif

另外
如果你還會繼續問程式設計的問題
可以用 code block(下圖紅框處)把程式碼框起來
會比較好看
https://ithelp.ithome.com.tw/upload/images/20221021/200017871zPWN28ASD.png

你好,我的提問會著重於Input而非Process是因為老師說他輸入的測資會有不合題目敘述的測資,需要我們來自己防範
作業Process花時間想我自己是想得出來的,因此我才不再這提問,而且怕問了會被抓到

輸入複製貼上這個部分只是我把作業的題目理解後做出簡單的敘述,因為作業需要輸出一個特定的圖形,然後會叫使用者輸入這個圖形的長寬高以及數量,因此我才會如此提問

謝謝你告訴我程式排版的方式,已經有做修改了

然後學校跟科系不方便在這透漏,說了感覺我這隻帳號就會被盯上

清楚明白

我要發表回答

立即登入回答