#28398: 請問要如何讓字串中的第二個開始的英文字母能印出正確數量?


ic231542211 (willie)

學校 : 不指定學校
編號 : 44051
來源 : [123.194.107.200]
最後登入時間 :
2022-09-15 15:14:37
e208. 11541 - Decoding -- UVA | From: [140.124.249.132] | 發表日期 : 2021-12-07 12:27

#include<stdio.h>

#include<string.h>

int main(){

    int n, a = 0;

    char str[300];

    scanf("%d\n", &n);

    for(int i = 0; i < n; i++){

        scanf("%s", str);

        printf("Case %d: ", ++a);

        int temp = 0;//印出英文字母個數

        char ch; //儲存英文字母

        for(int i = 0; i < strlen(str); i++){

            if(str[i] >= 'A' && str[i] <= 'Z'){

                for(int k = 0; k < temp; k++){

                    printf("%c", ch);

                }

                ch = str[i];

            }

            if(str[i] >= '0' && str[i] <= '9'){

                temp = temp * 10 + str[i] - '0';

            }

        }

        for(int k = 0; k < temp ; k++){

            printf("%c", ch);

        }

        printf("\n");

    }

}

當測資的字串只有一種英文字母或是字串中開頭第一個英文字母時,可以印出正確英文字母數量,

但如果要印出字串中的第二個開始的英文字母時就會出錯,請問如何修改?

 
#28401: Re:請問要如何讓字串中的第二個開始的英文字母能印出正確數量?


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
e208. 11541 - Decoding -- UVA | From: [27.51.82.236] | 發表日期 : 2021-12-07 19:17

                for(int k = 0; k < temp; k++){

                    printf("%c", ch);

                }

 

當測資的字串只有一種英文字母或是字串中開頭第一個英文字母時,可以印出正確英文字母數量,

但如果要印出字串中的第二個開始的英文字母時就會出錯,請問如何修改?


輸出連續相同的字母後要把temp設為0

 
#28404: Re:請問要如何讓字串中的第二個開始的英文字母能印出正確數量?


ic231542211 (willie)

學校 : 不指定學校
編號 : 44051
來源 : [123.194.107.200]
最後登入時間 :
2022-09-15 15:14:37
e208. 11541 - Decoding -- UVA | From: [140.124.249.31] | 發表日期 : 2021-12-08 13:41

                for(int k = 0; k < temp; k++){

                    printf("%c", ch);

                }

 

當測資的字串只有一種英文字母或是字串中開頭第一個英文字母時,可以印出正確英文字母數量,

但如果要印出字串中的第二個開始的英文字母時就會出錯,請問如何修改?


輸出連續相同的字母後要把temp設為0


謝謝你,我搞定了

 
ZeroJudge Forum