exe文件执行,系统为什么报错?

shurphey 2004-10-27 10:14:46
#include<iostream.h>
#include<iomanip.h>
void main()
{
int xarray[9]={1,2,3,4,5,6,7,8,9};
int yarray[9]={1,2,3,4,5,6,7,8,9};
int multi[81];
for(int i=0;i<9;i++)
{
for(int j=0;i<9;j++)
multi[j*9+i]=i*j;
}
cout<<"*";
for(int k=0;k<9;k++)
cout<<setw(8)<<xarray[k];
cout<<endl;
for(int a=0;a<9;a++)
{
for(int b=0;b<9;b++)
{
cout<<yarray[a];
cout<<setw(8)<<multi[a*9+b];
cout<<endl;
}
}
}
这个程序在vc能正常编译生成.exe文件可是在运行exe文件时windows系统报错,即exe文件执行不了,以前也遇到这样的问题,不知道是为什么?
...全文
225 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangfjj 2004-10-28
  • 打赏
  • 举报
回复
出现这个问题很可能(事实在你的程序中也是)数组越界了
zhangfjj 2004-10-28
  • 打赏
  • 举报
回复
for(int i=0;i<9;i++)
{
for(int j=0;i<9;j++)//j
multi[j*9+i]=i*j;
}
分析i=0
内循环:
j可以一直增加下去,
multi[j*9+i]不就越界了吗?
yangfasheng 2004-10-28
  • 打赏
  • 举报
回复
#include<iostream.h>
#include<iomanip.h>
int main()
{
int xarray[9]={1,2,3,4,5,6,7,8,9};
int yarray[9]={1,2,3,4,5,6,7,8,9};
int multi[81]={0};
cout<<"Test 1\n\n";
for(int i=0;i<9;i++)
{
for(int j=0;j<9;j++)
multi[j*9+i]=(i+1)*(j+1);
}
cout<<"*";
for(int k=0;k<9;k++)
cout<<setw(5)<<xarray[k];
cout<<endl;
cout<<endl;
for(int a=0;a<9;a++)
{
cout<<yarray[a];
for(int b=0;b<9;b++)
{
cout<<setw(5)<<multi[a*9+b];
}
cout<<endl;
cout<<endl;
}
return 0;
}
yangfasheng 2004-10-28
  • 打赏
  • 举报
回复
int xarray[9]={1,2,3,4,5,6,7,8,9};
int yarray[9]={1,2,3,4,5,6,7,8,9};
int multi[81];
for(int i=0;i<9;i++)
{
for(int j=0;i<9;j++)
//i应该换成j,常见的错误,可以跟踪调试,很快就能找到错误所在,
multi[j*9+i]=i*j;
}
hongfeeling 2004-10-28
  • 打赏
  • 举报
回复
我用VC编译,执行没出错啊。
goodluckyxl 2004-10-28
  • 打赏
  • 举报
回复
楼上的 数组在哪里越界了

我怎么找不到呢-_-!
shurphey 2004-10-28
  • 打赏
  • 举报
回复
其实我主要是 想在乘法口诀中用到NEW和DELETE
shurphey 2004-10-28
  • 打赏
  • 举报
回复
sorry,没有好好检查结果结果出错了,谢谢教导
goodluckyxl 2004-10-28
  • 打赏
  • 举报
回复
for(int j=0;i<9//这个死东西写出这样代码;j++)

-_-#
wylove 2004-10-28
  • 打赏
  • 举报
回复
是不是想要乘法口诀?给你改一下!
#include<iostream.h>
#include<iomanip.h>
void main()
{
int xarray[9]={1,2,3,4,5,6,7,8,9};
int yarray[9]={1,2,3,4,5,6,7,8,9};
int multi[9][9];
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)
multi[i-1][j-1]=i*j;
}
cout<<"*";
for(int k=0;k<9;k++)
cout<<setw(8)<<xarray[k];
cout<<endl;
for(int a=0;a<9;a++)
{
cout<<yarray[a];
for(int b=0;b<9;b++)
{
cout<<setw(8)<<multi[a][b];
}
cout<<endl;
}
}
sunrui 2004-10-27
  • 打赏
  • 举报
回复
敲错了!
for(int i=0;i<9;i++)
{
for(int j=0;i<9;j++)
^^^^ 应该是 j<9
multi[j*9+i]=i*j;
}

33,319

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧