#9261: 測試執行都可以 可是上去就WA了 跪求解


godpigarthur (帥哥于)


#include<stdio.h>
#include<stdlib.h>
int main(void){

    int i,N,a,b,c,Fuck1,Fuck2,Fuck3,Fuck4 ;

    scanf("%d",&N);

    for(i=0;i<N;i++){
                         scanf("%d%d%d",&a,&b,&c);

                          if(a == 1) Fuck1=b+c;
                          if(a == 2) Fuck2=b-c;
                          if(a == 3) Fuck3=b*c;
                          if(a == 4) Fuck4=b/c;
                      }
printf("%d\n%d\n%d\n%d\n",Fuck1,Fuck2,Fuck3,Fuck4);

        system("pause");

        return 0;



    }
 
請各位30cmEcup巨巨
 
幫幫小魯看看程式有什麼錯誤><
 
這是用C寫的 
#9262: Re:測試執行都可以 可是上去就WA了 跪求解


anandrewboy70900 (ShowTsai)


輸出只要輸出一個就好了


#9263: Re:測試執行都可以 可是上去就WA了 跪求解


avengertree (否放)


int 會爆掉,範圍不夠
#9264: Re:測試執行都可以 可是上去就WA了 跪求解


avengertree (否放)


#include
#include
int main(void){

    int i,N,a,b,c,Fuck1,Fuck2,Fuck3,Fuck4 ;

    scanf("%d",&N);

    for(i=0;i
                         scanf("%d%d%d",&a,&b,&c);

                          if(a == 1) Fuck1=b+c;
                          if(a == 2) Fuck2=b-c;
                          if(a == 3) Fuck3=b*c;
                          if(a == 4) Fuck4=b/c;
                      }
printf("%d\n%d\n%d\n%d\n",Fuck1,Fuck2,Fuck3,Fuck4);

        system("pause");

        return 0;



    }
 
請各位30cmEcup巨巨
 
幫幫小魯看看程式有什麼錯誤><
 
這是用C寫的 
-----------------------------------------------------
int 範圍會爆掉
#55521: Re: 測試執行都可以 可是上去就WA了 跪求解


qwertyuiopowengary@gmail.com (李璟豪Owen)


  • 變數設計不合理

    • 你用了 Fuck1, Fuck2, Fuck3, Fuck4 四個變數分別存結果,但這樣只能存最後一次的運算,前面的結果會被覆蓋。

    • 正確做法:應該用陣列或直接輸出結果,不要分開存。

  • 迴圈結構有問題

    • 你的 for(i=0;i... 迴圈不完整,應該要有明確的條件,例如 for(i=0; i<N; i++)

    • 否則程式無法正確執行。

  • 輸出設計錯誤

    • 你最後一次性輸出四個變數,但題目要求的是「每筆指令輸出一個結果」。

    • 正確做法:在迴圈裡直接 printf,而不是等迴圈結束再一次性輸出。

  • int 範圍可能爆掉

    • 在 C 語言裡,int 最大值大約是 2,147,483,647。

    • 如果題目測資超過這範圍,會發生 Overflow。

    • 解法:改用 long longunsigned long long,甚至 double,依照題目需求選擇。