我的程式在自己的編譯器上可以正確運行,一到藍橋杯的OJ上就運行錯誤不知為啥
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(void){
int a[9];
char c=getchar();
int count=0;
int i;
long long sum=0;
while(c!='\n'){
if(c>='0'&&c<='9')
a[count++]=(int)c-48;
else
a[count++]=(int)c-55;
c=getchar();
}
for(i=0;i<count;i++)
sum+=a[i]*pow(16,count-1-i);
printf("%lld",sum);
return 0;
}
uj5u.com熱心網友回復:
首先,題目有沒有要求輸入字串的長度?你現在定義a[9],也就是只能保證輸入長度是9個字符,而你的while回圈的count++沒有判斷是否超過最大長度,所以可能導致陣列越界。其次,題目有沒有要求十六進制的字母一定是大寫,如果輸入小寫,你的程式是不對的
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/146251.html
標籤:C語言
