#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
char n[10000];
int i,sum=0;
for(i=0;i<10000;i++){
n[i]=0;}
while(cin >> n){
for(i=0;i<strlen(n);i++){
n[i]=n[i]-48;}
for(i=0;i<strlen(n);i++){
sum+=n[i];}
if(sum%3==0)
cout << "yes" <<endl;
else
cout << "no" << endl;
for(i=0;i<10000;i++){
n[i]=0;}
sum=0;
}
return EXIT_SUCCESS;
}
請問一下為什麼會發生這個錯誤呢?
#include
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
char n[10000];
int i,sum=0;
for(i=0;i<10000;i++){
n[i]=0;}
while(cin >> n){
for(i=0;i n[i]=n[i]-48;}
for(i=0;i sum+=n[i];}
if(sum%3==0)
cout << "yes" < else
cout << "no" << endl;
for(i=0;i<10000;i++){
n[i]=0;}
sum=0;
}
return EXIT_SUCCESS;
}
請問一下為什麼會發生這個錯誤呢?
(-10^10001<=n<=10^10001)
需要10001個空間
你只有宣告10000個
所以會陣列索引值超出範圍
我建議改到10005 : )