c++ - 一个问题导致程序停止响应并且姓氏无法正确打印
问题描述
问题:
编写一个程序,通过创建一个名为“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++ 中的数组索引从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();
}
推荐阅读
- ios - iOS 应用程序如何操作 javascript 文件
- python - termios are not available in linux server
- android - How to pass data from stateful widget to Dialog Box?
- java - c和java在简单数组函数上的区别?
- javascript - Increase response time for SYNC request
- javascript - 在围绕中心点的圆形路径中移动元素
- javascript - ZXing.BrowserMultiFormatReader() how to active scanning active area via border
- python - Pygame 滚动条播放音量低或高。?
- android - How to create a root folder in internal memory in android 10 (android studio)
- flutter - Flutter :: My Refactor Button does not appear while Right Click on VSCode