#49429: C語言題解


chingchen0518 (chingchen)

學校 : 國立中山大學
編號 : 310780
來源 : [140.117.71.71]
最後登入時間 :
2025-10-06 15:14:42

  1. 因爲要無條件進位,可以使用<math.h>里的ceil( );
  2. 可以在讀取了第一個N後才按照N生成陣列——【int recipe[N];】
  3. 因爲要無條件進位,需要確保除了之後的結果是小數,可以多除1.0來讓整個式子變成小數除法
  4. 不確定最後一格有沒有空格,可以讓空格的條件變成if(i!=N-1)才print出空格

https://www.programiz.com/online-compiler/4YHmi68ultyNC

// Online C compiler to run C program online
#include <stdio.h>
#include <math.h>

int main() {
    int A=0,B=0,N=0;
    float current=0;
    
    // 讀取菜品數量和原本人數
    scanf("%d %d",&N,&A);
    
    // 按照菜品數量建立陣列
    int recipe[N];
    
    // 讀取食材的用量
    for(int i=0;i<N;i++){
        scanf("%d",&recipe[i]);
    }
    
    scanf("%d",&B);
    
    for(int i=0;i<N;i++){

        recipe[i] = ceil(recipe[i] / 1.0 / A * B);
        printf("%d",recipe[i]);
        
        if(i!=N-1){
            printf(" ");
        }
    }
    
    return 0;
}