首页 > 解决方案 > 一个问题导致程序停止响应并且姓氏无法正确打印

问题描述

问题:

编写一个程序,通过创建一个名为“Employee”的类来打印三个员工的信息(姓名、入职年份、工资、地址)。输出应如下所示: 姓名 加入年份 地址 Robert 1994 64C- WallsStreat Sam 2000 68D- WallsStreat John 1999 26B- WallsStreat

代码:

#include<iostream>
using namespace std;
class Employee
{
        char name[10];
        int year;
        char address[20];
public:
    void initialize()
    {
        cout<<"Enter name,year and address"<<endl;
        cin>>name>>year>>address;
    }
       void display();
};
 void Employee:: display()
{

    cout<<name<<"\t"<<year<<"\t"<<address<<endl;
}

int main()
{
    int i;
    Employee e[3];
    for(i=1;i<4;i++)
    {
        e[i].initialize();
    }
     cout<<"Name"<<"\t"<<"Year of Joining"<<"\t"<<"Adress"<<endl;
      for(int j=1;j<4;j++)
    {
        e[j].display();
    }

}

输出是:

输入姓名、年份和地址 Robert 1994 64C-Wallstreet 输入姓名、年份和地址 sam 2000 68D-Walstreet 输入姓名、年份和地址 John 1999 26B-Wallstreet 输入姓名、年份和地址

V C 输入姓名、年份和地址 输入姓名、年份和地址 姓名 入职年份 地址 V 0 64C-Wallstreet sam 2000 68D-Walstreet 1999 26B-Wallstreet

进程返回 255 (0xFF) 执行时间:64.884 s 按任意键继续。

并弹出一个通知,说有什么东西阻止了这个程序正常运行。

标签: c++

解决方案


请注意,C++ 中的数组索引从0. 这意味着对于一个大小为 的数组N,有效的索引是0, 1, 2, ..., N-2, N-1

因此,在您的示例中,遍历索引的循环应该是:

for(int i = 0; i < 3; ++i)
    {
        e[i].initialize();
    }

同样:

for(int j = 0; j < 3; ++j)
    {
        e[j].display();
    } 

推荐阅读