上次的题数组越界了....
还是上次的题,换了一个思路编,就悲剧了。老是打印出来“烫”,“?”,老师和同学说可能是数组越界了,怎么办啊? 调了5个小时了啊。
#include<iostream.h> #include<string.h> #include<iomanip.h> #include<ctype.h> void main(void) { char a[1024]; char b[1024][100]; int c[1024]; int i; int j = 0; int k = 0; int m = 0; int charLength; int counter = 0; int counter1 = 0; int max = 0; int x; cout<<"输入串:(Enter结束输入。)"<<endl; cin.getline( a, 1024, 'n' ); charLength = strlen(a); for( i = 0; i < charLength; i++ ) { while( a[i] != '' ) { while( isdigit( a[i] ) ) { while( j <= 1024 ) { while( a[i] != '' ) { while( k <= 1024 ) { while( a[i] != '' ) { if( !isdigit( a[i] ) ) { break; } else { b[j][k] = a[i]; i++; counter++; } k++; } c[m] = counter; m++; while( counter > max ) { max = counter; counter = 0; } if( !isdigit( a[i] ) || a[i] == '' ) { j++; break; } else { i++; } i++; } k = 0; counter1++; break; } break; } } break; } } cout<<"输出结果:"<<endl; m = j; for( j = 0; j < counter1; j++ ) { x = max - c[j] + 1; cout<<setw(x)<<setfill(' '); for( k = 0; k < c[j]; k++ ) { cout<<setiosflags(ios::right)<<b[j][k]; } cout<<endl; } cout<<endl; }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
谢谢啊 我去试试。
这个程序要检查数组越界很简单,循环完后打印相应的值。如果程序运行出错将操作数组元素的语句注释掉。