#11772: help


HSUxMichael (IAmTotallyExhausted)

學校 : 臺北市立成功高級中學
編號 : 61983
來源 : [101.10.132.127]
最後登入時間 :
2020-10-11 12:31:31
a240. 第一題:1 / 17 小數第 n 位 -- 100學年度板橋高中校內資訊學科能力競賽 | From: [180.217.133.12] | 發表日期 : 2017-02-25 01:01

第 1 測資點(100%): RE (SIGSEGV)
執行時期錯誤

記憶體區段錯誤! Segmentation fault (core dumped)

WHY??

#include<iostream>
#include<stdio.h>
using namespace std;

int main()
{
char a[17000];//1/17=0.(0588/2352/9411/7647 repeat)
int i,m,n,t;
for(i=0;i<17000;i+=16){
a[i]='0';a[i+1]='5';a[i+2]='8';a[i+3]='8';
a[i+4]='2';a[i+5]='3';a[i+6]='5';a[i+7]='2';
a[i+8]='9';a[i+9]='4';a[i+10]='1';a[i+11]='1';
a[i+12]='7';a[i+13]='6';a[i+14]='4';a[i+15]='7';
}
scanf("%d",&t);
for(t=t;t>0;t--){
scanf("%d",&m);
n=(m/16)*72;
for(i=0;i<m%16;i++){
n+=(a[i]-48);
}
printf("%c %d\n",a[m-1],n);
}
return 0;
}

 

 
#12247: Re:help


alun0922 (新手)

學校 : 國立交通大學
編號 : 9161
來源 : [106.104.75.98]
最後登入時間 :
2021-11-14 09:48:47
a240. 第一題:1 / 17 小數第 n 位 -- 100學年度板橋高中校內資訊學科能力競賽 | From: [112.104.107.125] | 發表日期 : 2017-06-19 15:46

17000 / 16 不會整除,迴圈最多到16992。

16992 + 15 = 17007 超過你定義的陣列大小。

所以記憶體錯誤。

 
ZeroJudge Forum