#7617: 請問一下為什麼下面程式會出現錯誤


st3a017004 (coffee)


 為什麼出現RE
 
RE (SIGSEGV)
執行時期錯誤
記憶體區段錯誤!  
Segmentation fault
 
 
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
string N[]={"零","壹","貳","參","肆","伍","陸","柒","捌","玖","拾","佰","仟","萬","億"};
    for(string n="";cin>>n;cout<<endl)
for(int i=0;i<n.length();i++) //個位數為0或者前一個位數已經有0,不需要顯示數值     
cout<<(((n[i]==0x30 && i==(n.length()-1)) || (n[i]==n[i+1] && n[i]==0x30)
)?"":N[n[i]-0x30])+ 
(((i==n.length()-1) || (n[i]==0x30))?"":N[8+n.length()-i]);//個位數者其餘位數數值為0時不需要顯示單位 
}

#7620: Re:請問一下為什麼下面程式會出現錯誤


kkmomo (kkmomo)


>n[i]==n[i+1]

最後 i = n.length()-1 時 n[i+1] 就超出範圍了