t071: T801(列印星號)
標籤 : TQC 列印星號
通過比率 : 0人/0人 (0%) [非即時]
評分方式:
Tolerant

最近更新 : 2022-06-24 01:14

內容

1.利用for迴圈輸出如執行結果1、2、3、4,若是以printf函數印出,則不給分。

1.         2.         3.         4.
*          *****           *  *****
**        ****           **    ****
***      ***           ***      ***
****    **           ****        **
*****  *           *****          *

本程式原題意:寫出4個c程式分別命名 CPD08-1.c、CPD08-2.c、CPD08-3.c、CPD08-4.c,每支程式分別顯示4種由星號組成的三角形圖案。
但因 judge 系統不處理程式碼分開的方式,所以本題改成:寫出4個副程式分別為 CPD08_1.c、CPD08_2.c、CPD08_3.c、CPD08_4.c,副程式必須傳入列印星星數,因此煮成是必須輸入所要列印的星號圖案編號及星星數,並傳入對應的副程式。
本題提供兩種主程式呼叫方式,一種為利用程式指標,將副程式位址分別放進副程式指標陣列,依照使用者需求呼叫對應的陣列。
另一種比較簡單的方式是以 switch case 方式,選擇須呼叫的副程式。程式碼如下供參考,但有些錯誤,需修正。

#include <stdio.h>
#include <stdlib.h>
void cpd08_1(int);
void cpd08_2(int);
void cpd08_3(int);
void cpd08_4(int);

int main(){
    void (*triangle[])(int)= {cpd08_1,cpd08_2,cpd08_3};
    int m,n;
    while(1){
        printf("輸入三角型形狀代號(1-4)及星星數量(1-10):");
        scanf("%d %d",&m,&n);
        if((m<1)&&(m>4)||(n<1)&&(n>10)) break;
        triangle[m](n);
    }
    return 0;
}

void cpd08_1(int n){

}

void cpd08_2(int n){

}

void cpd08_3(int n){

}

void cpd08_4(int n){

}

主程式部分,呼叫副程式形式不拘,如下方式也可以。
int main(){
    int m,n;
    while((m>=1)&&(m<=4)&&(n>=1)&&(n<=10)){
        printf("輸入三角型形狀代號(1-4)及星星數量(1-10):");
        scanf("%d %d",&m,&n);
        switch (m){
        case 1:cpd08_1(n);
        case 2:cpd08_2(n);
        case 3:cpd08_3(n);
        case 4:cpd08_4(n);
    }
    return 0;
}

輸入說明
輸出說明
範例輸入 #1
範例一
1 5
2 10
3 4
0 5

範例二
4 6
1 11



範例輸出 #1
範例一
輸入三角型形狀代號(1-4)及星星數量(1-10):1 5
*
**
***
****
*****

輸入三角型形狀代號(1-4)及星星數量(1-10):2 10
**********
*********
********
*******
******
*****
****
***
**
*

輸入三角型形狀代號(1-4)及星星數量(1-10):3 4
   *
  **
 ***
****
輸入三角型形狀代號(1-4)及星星數量(1-10):0 5

範例二
輸入三角型形狀代號(1-4)及星星數量(1-10):4 6
******
 *****
  ****
   ***
    **
     *
輸入三角型形狀代號(1-4)及星星數量(1-10):1 11
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (50%): 1.0s , <1K
公開 測資點#1 (50%): 1.0s , <1K
提示 :
標籤:
TQC 列印星號
出處:
TQC 題庫071 [管理者: zero(管理員) ]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」