读书人

奇怪的越界有关问题

发布时间: 2012-11-03 10:57:43 作者: rapoo

奇怪的越界问题。

C/C++ code
#include<iostream> using namespace std; int main() {   int n,a[11];   cin >> n;   while(n--)   {       int t =0;       char ch;       for(int i =0;i<11;++i)       {           ch = getchar();           if(ch=='a'||ch=='b'||ch=='c') a[t++]=2;           if(ch=='d'||ch=='e'||ch=='f') a[t++]=3;           if(ch=='g'||ch=='h'||ch=='i') a[t++]=4;           if(ch=='j'||ch=='k'||ch=='l') a[t++]=5;           if(ch=='m'||ch=='n'||ch=='o') a[t++]=6;           if(ch=='p'||ch=='q'||ch=='r'||ch=='s') a[t++]=7;           if(ch=='t'||ch=='u'||ch=='v') a[t++]=8;           if(ch=='w'||ch=='x'||ch=='y'||ch=='z') a[t++]=9;       }       for(int i=0;i<10;++i)           cout << a[i] ;  //这个循环不是应该只能输出10位吗?怎么变成11位了,如果改成i<11就越界了       cout << endl;   }   return 0; }


[解决办法]
理论上,既然定义了int a[11],那么a[10]就没有越界
如果报错,那应该是其他地方出了问题

读书人网 >C++

热点推荐