有關筆試題,輸入輸出格式的幾個特殊例子

題目描述

老師想知道從某某同學當中,分數最高的是多少,現在請你編程模擬老師的詢問。當然,老師有時候需要更新某位同學的成績.

輸入描述:

輸入包括多組測試數據。
每組輸入第一行是兩個正整數N和M(0 < N <= 30000,0 < M < 5000),分別代表學生的數目和操作的數目。
學生ID編號從1編到N。
第二行包含N個整數,代表這N個學生的初始成績,其中第i個數代表ID爲i的學生的成績
接下來又M行,每一行有一個字符C(只取‘Q’或‘U’),和兩個正整數A,B,當C爲'Q'的時候, 表示這是一條詢問操作,他詢問ID從A到B(包括A,B)的學生當中,成績最高的是多少
當C爲‘U’的時候,表示這是一條更新操作,要求把ID爲A的學生的成績更改爲B。

輸出描述:

對於每一次詢問操作,在一行裏面輸出最高成績.

示例1

輸入

複製

5 7
1 2 3 4 5
Q 1 5
U 3 6
Q 3 4
Q 4 5
U 4 5
U 2 9
Q 1 5

輸出

複製

5
6
5
9

題目比較簡單,但是輸入輸出的格式寫不對,照樣不能AC

#include <stdio.h>
#define MAXN 60000
 
int get_max(int a, int b, int s[]);
 
int main(){
    int A, B;
    int M, N;
    char c;
    int score[MAXN];
     
    while(scanf("%d %d", &N, &M) != EOF){
        for(int i = 1; i <= N; i++){
            scanf("%d", &score[i]);
            getchar();
        }
         
        while(M--){
            scanf("%c %d %d", &c, &A, &B);
            getchar();
            switch(c){
                case 'Q':{
                    printf("%d\n", get_max(A, B, score));
                    break;
                }
                case 'U':{
                    score[A] = B;
                    break;
                }
            }
        }
    }
    return 0;         
}
 
int get_max(int A, int B, int s[]){
    int M;
    if(A < B){
        M = s[A];
        for(int i = A+1; i <= B; i++){
            if(M < s[i]){
                M = s[i];
            }
        }
    }
    else{
        M = s[B];
        for(int i = B+1;i <= A; i++){
            if(M < s[i]){
                M = s[i];
            }
        }
    }
    return M;
}

 

發佈了79 篇原創文章 · 獲贊 110 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章