ETH官方钱包

前往
大廳
主題

[OJ練習] 10370、10041 繼續練習malloc和把區域變數放在正確的地方,以及註解。

テリ君(桃夫模式) | 2022-12-09 12:04:34 | 巴幣 2 | 人氣 169

10370(1/5)

#include <stdio.h>
#include <stdlib.h>

int main(){
    int C = 0;
    // The rst line of standard input containsan integer C,
    // the number of test cases.
    scanf("%d", &C);
    //Each data set begins with an integer, N,
    // the number of people in the class (1 <= N <=1000).
    int N = 0;
    float *g; // g for grade
    
    
    for(int i = 0; i < C; i++){
        scanf("%d", &N);
        g = (float*)malloc(sizeof(float) * N);
        
        float sum = 0, o_a = 0, avg = 0; // over_average
        
        for(int j = 0; j < N; j++){
            scanf("%f", g + j);
            if(*(g + i) > 100 || *(g + i) < 0) return 1;
        }
        for(int j = 0; j < N; j++){
            sum = sum + *(g + j);
        }
        
        avg = sum / N;
        
        for(int j = 0; j < N; j++){
            if(*(g + j) > avg) o_a++; // number of students whose grade is above average
        }
        printf("%.3f%%\n", o_a / N * 100); // rounded to 3 decimal places
        
        free(g); // remember to free space
        
    }
    
    return 0;
}

10041(1/5)

#include <stdio.h>
#include <stdlib.h>

int main(){
    int t, r; // test cases and
    int *s;
    
    scanf("%d", &t);
    
    while(t--){
        
        int d = 0; // d = distance sum
        
        scanf("%d", &r);
        s = (int *)malloc(sizeof(int) * r);
        
        for(int i = 0; i < r; i++){
            scanf("%d", s + i);
        }
        for(int i = 0; i < r - 1; i++){
            d = d + (*(s + i + 1) - *(s + i));
        }
        printf("%d\n", d);
    }
    
    return 0;
}

這兩題都不難,不過我就是繼續練習malloc的應用和把該放的區域變數放在正確的位置,這樣也不用再重製一個變數的值,另外就是嘗試多寫註解,從題目的提示去下手和額外增加一些註解。

創作回應

G家遊民
malloc要記得free啊啊
2022-12-09 17:34:41
G家遊民
我個人覺得malloc的重點就是要建立習慣,allocate多少記憶體,結束的時候就要free多少記憶體
2022-12-09 17:35:39
テリ君(桃夫模式)
啊我昨天才在打說要記得free的,結果又一個忘記free了
2022-12-09 18:17:02
G家遊民
或是每一塊allocated memory 都要有pointer 指到它
2022-12-09 17:36:31

更多創作