emp->salary[i]=5000+(rand()%5000); 给我解释一下这句话
时间: 2024-04-18 09:24:34 浏览: 9
这句代码是在给一个结构体变量 emp 中的一个名为 salary 的数组赋值。在这里,emp 是一个指针,它指向一个结构体的变量。结构体中包含一个名为 salary 的数组,通过 emp->salary[i] 的方式访问数组中的元素。
代码中的表达式 5000+(rand()%5000) 是用来生成一个随机的薪水值。rand()%5000 表示获取一个范围在 0 到 4999 之间的随机数,然后将其加上 5000,得到的结果就是一个范围在 5000 到 9999 之间的随机数。这个随机数将被赋值给 emp->salary[i],即数组中的第 i 个元素。
相关问题
if(emp1==emp_first) { emp_first=emp1->next; } else { emp2->next=emp1->next; }
这是一个 C/C++ 语言中的条件语句,用来处理链表中删除一个节点的情况。其中 emp1 和 emp2 是链表中的节点,emp_first 是链表的头节点。
这段代码的作用是:如果要删除的节点 emp1 是链表的头节点,那么将链表的头节点指向 emp1 的下一个节点 emp_first=emp1->next;否则将 emp2 的下一个节点指向 emp1 的下一个节点 emp2->next=emp1->next;。
需要注意的是,这段代码假设链表中一定包含要删除的节点 emp1,否则会出现错误。同时,删除节点后需要手动释放该节点的内存空间。
#include<iostream> #include<string> using namespace std; class employee { private: string name; int age; double salary; public: employee(string name="",int age=0,double salary=0) { this->name = name; this->age = age; this->salary = salary; } void setname(string name){ this->name = name; } void setage(int age) { this->age = age; } void setsalary(double salary) { this->salary = salary; } void display() { cout << "姓名:" << name << endl; cout << "年龄:" << age << endl; cout << "工资:" << salary << endl; } string getname() { return name; } int getage() { return age; } double getsalary() { return salary; } }; int main() { employee emp("王鹏",18,18000); emp.display(); emp.getname("王赟煜"); emp.setsalary(200000); emp.display(); return 0; }怎么修改程序
你需要将 `emp.getname("王赟煜");` 修改为 `emp.setname("王赟煜");`,因为 `getname()` 是获取姓名的函数,而不是设置姓名的函数。修改后的程序如下:
```
#include<iostream>
#include<string>
using namespace std;
class employee {
private:
string name;
int age;
double salary;
public:
employee(string name="",int age=0,double salary=0) {
this->name = name;
this->age = age;
this->salary = salary;
}
void setname(string name){
this->name = name;
}
void setage(int age) {
this->age = age;
}
void setsalary(double salary) {
this->salary = salary;
}
void display() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "工资:" << salary << endl;
}
string getname() {
return name;
}
int getage() {
return age;
}
double getsalary() {
return salary;
}
};
int main() {
employee emp("王鹏",18,18000);
emp.display();
emp.setname("王赟煜");
emp.setsalary(200000);
emp.display();
return 0;
}
```