#1917: 求救 : 發生了RE


abalone (偷偷來)

學校 : 不指定學校
編號 : 6328
來源 : [220.134.238.11]
最後登入時間 :
2011-06-27 16:34:52
d018. 字串讀取練習 | From: [118.169.77.33] | 發表日期 : 2009-05-06 14:27

求救一下,發生了RE但是我不知道問題出在哪

這樣我完全不知道該如何修正,煩請知道的人跟我講一下,謝謝。

==================== 

執行時發生錯誤 (SIGSEGV)(11)!!
Segmentation fault, an address reference boundary error.(記憶體區段錯誤)
可能原因為:
* 通常為使用超過陣列範圍
* 指標指向不正確位址!
* 陣列初始化不正確!
* 嘗試在執行時期定義陣列長度!
sh: line 1: 32230 程式記憶體區段錯誤

================================== 

程式如下 :

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()

     int i,j,len;
     double even,odd;
     char Data[1000],str[16]; 
     while(gets(Data))  
     {       
        len=strlen(Data);
        even=0,odd=0;
        for(i=0;i<len;i++)
           if(Data[i]==':')
           {
              j=0;            
              if(Data[i-1]%2)
              {
                 while(Data[++i]!=' ')
                    str[j++]=Data[i];
                 str[j]='\0';
                 odd+=atof(str);
              }
              else
              {
                 while(Data[++i]!=' ')
                    str[j++]=Data[i];
                 str[j]='\0';
                 even+=atof(str);
              }
           }
        odd-=even;
        printf("%f",odd);
     }
    return 0;  
}

 
ZeroJudge Forum