/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:冷基栋 * 完成日期:2015年 3 月 19 日 * 版 本 号:v1.0 */
问题
(2)用salary[50]有限制,实际人数少时,会浪费空间,人数多了,无法完成任务。在main()中先输入职工人数,作为参数传递给输入职工工资的成员函数,然后利用动态分配内存的机制,开辟一个大小正好的连续空间,完成上面的工作。
代码
#include <iostream> using namespace std; class Salary { private: int *salarys; int number; public: void set_salarys(); void add_salarys(int); void sort_salarys(); void show_salarys(); }; void Salary::set_salarys() { int x=0,i=0; cout<<"请输入职工人数:"; cin>>number; salarys=new int[number]; cout<<"请输入职工工资:"; while (i<number) { cin>>x; salarys[i]=x; i++; } number=i; } void Salary::add_salarys(int a) { for (int i=0;i<number;i++) { salarys[i]+=a; } } void Salary::sort_salarys() { int a; for (int i=0;i<number-1;i++) for (int j=0;j<number-1;j++) { if(salarys[j]>salarys[j+1]) {a=salarys[i]; salarys[i]=salarys[i+1]; salarys[i+1]=a;} } } void Salary::show_salarys() { for (int i=0;i<number;i++) cout<<salarys[i]<<endl; } int main() { Salary s; s.set_salarys(); s.add_salarys(666); s.sort_salarys(); s.show_salarys(); }
运行结果:
知识点总结:
int *salarys;
cin>>number;
salarys=new int[number];
int x=0,i=0;
while (i<number)
{
cin>>x;
salarys[i]=x;
i++;
}
学习心得:
好好学习 天天向上
原文地址:http://blog.csdn.net/ljd939952281/article/details/44457073