题目内容
//指针与动态内存分配示例――单位人员信息管理//某单位职工基本情况表如表所示。由于职工众多,现计划开发一款软件以提高管理效率,要求先输入职工原始信息,计算出各人实发工资(=基本工资+奖金),再按职工编号升序排序后输出以方便查看。//请选择空白位置的全部正确答案#include #include #define N 300000int main(){struct info_type{int zgbh;//职工编号char bm[11]; //部门char xm[11]; //姓名char xb[3]; //性别char sfzh[19];//身份证号char zc[11]; //职称int jbgz;//基本工资int jj;//奖金int sfgz;//实发工资};int i,j,n;struct info_type *p;do//输入实际人数{printf("\n请输入职工总数(1--%d):",N);scanf("%d",&n);}while((n<1)||(n>N));//分配n+1份内存空间,每份大小为sizeof(struct info_type),多出的1份用于排序p=(struct info_type *)malloc((n+1)*sizeof(struct info_type));if(p==NULL)printf("\n内存空间的分配不成功!\n");else//内存分配成功,进行后续操作{printf("请逐个输入职工信息(职工编号 部门 姓名 性别 身份证号 职称 基本工资 奖金):\n");for(i=1;i<=n;i++){printf("No.%d:",i);scanf("%d%s%s%s%s%s%d%d",&p[i].zgbh,p[i].bm,p[i].xm,p[i].xb,p[i].sfzh,p[i].zc,&p[i].jbgz,&p[i].jj);p[i].sfgz=p[i].jbgz+p[i].jj;}for(j=1;jp[i].zgbh){________}printf("\n职工基本信息表如下(按职工编号升序排列):\n");for(i=1;i<=n;i++)printf("%10d%12s%12s%4s%20s%12s%6d%6d%6d\n",p[i].zgbh,p[i].bm,p[i].xm,p[i].xb,p[i].sfzh,p[i].zc,p[i].jbgz,p[i].jj,p[i].sfgz);free(p);}system("pause");return 0;}
查看答案
搜索结果不匹配?点我反馈
更多问题