来看一下这个程序

来源:百度知道 编辑:UC知道 时间:2024/06/05 20:10:14
写的一个简单的用结构体的程序,目的是输入几个数据然后依次输出,运行的时候输入可以,但是要输出输入的数据的时候却会有个 系统丢失 错误,小弟想很久想不通,忘高手指点一下~!
#include <iostream>
#include <string>
using namespace std;
struct student
{
int num;
string name;
};
int i=1;
int main()
{
student stu[3];
void in_put(student stu[]);
in_put(stu);
system("pause");
return 0;
}
void in_put(student stu[])
{

for(i=1;i<4;i++) //输入数据,刚刚又试了一下,好象是输入数据后按下回车就会有系统错误了~!
{
cin>>stu[i].num;
cin>>stu[i].name;
};
for(i=1;i<4;i++) //输出数据

{
cout<<stu[i].num;
cout<<stu[i].name;
};
}

数组越界了,你定义的数组长度只有是3,是从0开始,依次是0 1 2
而你循环哪里怎么从1开始,到3,这里错误了,改成下面的就没错了
for(i=0;i<3;i++)
{
cin>>stu[i].num;
cin>>stu[i].name;
};
for(i=0;i<3;i++) //输出数据

{
cout<<stu[i].num;
cout<<stu[i].name;
};
}

~^^~
两个for(i=1;i<4;i++)都改成for(i=0;i<3;i++)就行了!
你定义的stu[3];啊:就是stu[0]、stu[1]、stu[2]!