c++ - 如何在 C++ 中打印动态数组我需要解释这个问题
问题描述
这是老师给我的问题:
- 构造一个
Employee
包含以下字段的结构:ID
,name
,degree
,age
- 一个创建对象(
Employee
类型变量)的函数,从用户那里填充它,然后返回它。 - 接收对象(
Employee
类型变量)并打印其字段的函数。 - 主函数内部:
- 要求用户指定员工人数。
- 为员工创建用户指定大小的动态数组。
- 在循环中,通过调用第一个函数一次填充一个数组元素。
- 在另一个循环中,通过调用第二个函数一次打印一个数组元素。
尽管我不明白,但我试图解决它,这就是我所拥有的,请帮助:
struct Employee
{
int ID;
char name[10];
char degree;
int age;
};
int fillin()
{ Employee employee;
cout<<"Enter employee ID, NAME, DEGREE and AGE:\n";
cin>>employee.ID;
cin>>employee.name;
cin>>employee.degree;
cin>>employee.age;
}
int print()
{
Employee employee;
cout<<"ID: "<< employee.ID<<" , ";
cout<<"NAME: "<< employee.name<<" , ";
cout<<"Degree: "<< employee.degree<<" , ";
cout<<"AGE: "<< employee.age<<".\n ";
}
int main()
{
int num;
cout<<"Enter number of employees: ";
cin>> num;
string *name= new string[num];
for(int i = 0; i < num;i++)
{
name[i]=fillin();
}
for(int j : name){
print();
}
return 0;
}
解决方案
代码有几个问题,下面是工作示例。
- 函数应该以某种方式接收和返回参数,代码中使用了引用
- 数组应该是适当的类型
- 使用了错误的迭代器
但是,请记住,代码还有更多问题,比如没有边界检查,最好使用 STL 库……把这当作一个起点。
#include <iostream>
using namespace std;
struct Employee
{
int ID;
char name[10];
char degree;
int age;
};
int fillin(Employee& employee)
{
cout<<"Enter employee ID, NAME, DEGREE and AGE:\n";
cin>>employee.ID;
cin>>employee.name;
cin>>employee.degree;
cin>>employee.age;
}
int print(const Employee& employee)
{
cout<<"ID: "<< employee.ID<<" , ";
cout<<"NAME: "<< employee.name<<" , ";
cout<<"Degree: "<< employee.degree<<" , ";
cout<<"AGE: "<< employee.age<<".\n ";
}
int main()
{
int num;
cout<<"Enter number of employees: ";
cin>> num;
Employee *emp= new Employee[num];
for(int i = 0; i < num;i++)
{
fillin(emp[i]);
}
for(int j = 0; j< num; j++){
print(emp[j]);
}
return 0;
}
推荐阅读
- firebase - 应用退出状态时 React Native 事件触发
- mysql - MySQL 查询、子查询、不同、计数、
- sql - 红宝石儿童的孩子协会
- ios - 带 -u 的 Alamofire
- machine-learning - 为什么我的 Keras LSTM 网络在 Epoch 上的训练损失越来越大 - 时间序列数据的奇怪 LSTM 行为
- vscode-settings - VSCode如何更改资源管理器滚动条的大小?
- ios - Flutter 应用程序无法在启用了 onesignal 推送通知服务的 iOS 模拟器上运行
- apollo - 如何解决 Apollo Studio Sanbox Cors?
- amazon-web-services - AWS Route 53 中的 C 记录 - 是否允许路径?
- java - 将二维数组按升序排序到一列