#6843: 為何 C++ 通過,C 就不行?


jdh8 (硬邦邦)

學校 : 臺北醫學大學
編號 : 6332
來源 : [122.116.101.60]
最後登入時間 :
2019-11-14 01:20:34
d636. 大爆炸bomb -- jack1 | From: [118.168.177.133] | 發表日期 : 2012-07-26 21:10

我寫了一段 C 程式碼,自己用 gcc-4.7.0 編譯通過了,執行也沒問題。
結果送到這裡,選 C 語言送出,結果三個測資點都陣亡:「執行時期未定義錯誤,code = 5 」
一樣的程式碼,改選 C++ 就 AC 了。程式碼如下:

#include <stdio.h>

int powmod(int a, int b) {
  int bin=1, i, res=1, tmp=a%10007;

  for(i=0; i<32; i++) {
    if(b & bin)
      res = res * tmp % 10007;
    bin <<= 1;
    tmp = tmp * tmp % 10007;
  }
  return res;
}

int main() {
  int a, b;
  scanf("%d %d", &a, &b);
  printf("%d\n", powmod(a, b));
}

在自家機器的執行結果如下,其中 2 和 31 是程式執行後我再輸入的:
輸入 2 31,輸出 1462

 
#6844: Re:為何 C++ 通過,C 就不行?


s111110111 (山口)

學校 : 國立臺灣師範大學
編號 : 21172
來源 : [220.137.25.144]
最後登入時間 :
2014-09-13 18:54:39
d636. 大爆炸bomb -- jack1 | From: [111.250.60.243] | 發表日期 : 2012-07-26 23:16

int main() {

  int a, b;
  scanf("%d %d", &a, &b);
  printf("%d\n", powmod(a, b));
}

加上 return 0; 就可以送 ansi C 了  
#6845: Re:為何 C++ 通過,C 就不行?


jdh8 (硬邦邦)

學校 : 臺北醫學大學
編號 : 6332
來源 : [122.116.101.60]
最後登入時間 :
2019-11-14 01:20:34
d636. 大爆炸bomb -- jack1 | From: [118.168.177.133] | 發表日期 : 2012-07-27 00:37

多謝提醒!

AC (0ms, 286KB)

 
ZeroJudge Forum