江阴市高中一本率:一个数组复制给另一个数组,如何输出

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/20 02:25:59
nclude<iostream>
using namespace std;
int main()
{
int ax[3];
int a[10]={1,2,3};
for(int ix=0;ix<=3;++ix)
ax[ix]==a[ix];
cout<<ax[ix];
return 0;
}
输出为乱码是什么意思啊

主要存在赋值错误
错误一:在循环中给数组ax[ix],ix=3赋值了,造成数组越界了。
错误二:ax[ix]==a[ix]是逻辑判断,而不是赋值。应该用一个等号进行赋值
错误三:如果是想将ax[ix],ix=0,1,2时的值分别输入,应该加一个“{}”将相应的循环包括起来。
正确的例子参考:
nclude<iostream>
using namespace std;
int main() {
int ax[3];
int a[10]={1,2,3};
for(int ix=0;ix<3;++ix){
ax[ix]=a[ix];
cout<<ax[ix];
}
return 0;
}
如还有错误,请各位同仁指正。

赋值语句应为 ax[ix]=a[ix];
==是逻辑判断

首先,你把==当成了赋值号=,是个错误。

其次,int ax[3];的话,ax只有三个元素ax[0],ax[1],ax[2]。你的for循环里,结束条件设的是ix<=3,那么ix=3时也执行了一次循环体,ax[3]被赋值,而实际上ax数组中没有ax[3]这个元素。

数组3个元素,你赋了4个值,当然出错.