iT邦幫忙

0

c語言程式問題

  • 分享至 

  • xImage

各位大神好 我想要印出下面的圖形
https://ithelp.ithome.com.tw/upload/images/20221102/20154648EVnjduxKv8.jpg
我的程式碼:
https://ithelp.ithome.com.tw/upload/images/20221102/20154648dJJD0CvB1b.jpghttps://ithelp.ithome.com.tw/upload/images/20221102/20154648hU9dpXumRZ.jpg
結果印出來變https://ithelp.ithome.com.tw/upload/images/20221102/20154648Fer5FnCtqE.jpg
想問問哪個部分可以修改 個人認為應該是下半部的問題QQ

johncoc iT邦新手 3 級 ‧ 2022-11-02 17:16:50 檢舉
下半部的 2*i+1 都改成 2*(i+1)+1
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-11-02 17:43:01

https://ithelp.ithome.com.tw/upload/images/20221102/20001787vgQG61TPle.png

五十男 iT邦研究生 5 級 ‧ 2022-11-03 09:46:00 檢舉

推古董 Borland C++ Builder

const int n=9;

AnsiString s1;

for(int i=n;i>0;i--){
    s1=AnsiString::StringOfChar(' ',n);
    s1.c_str()[n-i]='*';
    s1.c_str()[i-1]='*';
    Memo1->Lines->Add(s1);
}

我不會貼圖

shiaobin iT邦新手 4 級 ‧ 2022-11-03 14:21:39 檢舉

原來有 Online C Compiler,好方便啊!

0
shiaobin
iT邦新手 4 級 ‧ 2022-11-03 14:15:07

可以把重複的部份寫成函式,比較好懂也比較好維護。

程式碼

#include <stdio.h>

int max(int i, int j) {
    if (i > j) {
        return i;
    } else {
        return j;
    }
}

/* 指定兩個 * 位置
   例:i=7, j=1
   印出 " *     *"
*/
void print_star(int i, int j) {
    for (int x = 0; x <= max(i, j); ++x) {
        if (x == i || x == j) {
            printf("*");
        } else {
            printf(" ");
        }
    }
    printf("\n");
}

void print_x(int size) {
    for (int i = 0; i <= size - 1; ++i) {
        print_star(i, size - i - 1);
    }
}

int main() {
    print_x(9);

    return 0;
}

執行結果

執行結果

我要發表回答

立即登入回答