代碼邏輯正確,但 counter、number 未在每組測資迴圈重置,導致累加錯誤。
for(j=0;j<T;j++) {
gets(str);
for(i=0;str[i];i++) { ... }
if(counter>number) ... // counter、number 來自上一輪累積
}
for(j=0;j<T;j++) {
int counter = 0, number = 0; // 移入迴圈內,每輪歸零
gets(str);
for(i=0;str[i];i++) {
if(str[i]=='Q') counter++;
else number++; // 假設只有 Q 和 S
}
puts(counter>number ? "Simple" : "晴天");
}
gets 已棄用(緩衝區溢位風險),改用 fgets(str, N, stdin)。T 後殘留換行符,scanf("%d ", &T) 中的空格可吸收空白字元,或額外 getchar()。「迴圈變數每輪歸零」是處理多組測資的基本功。