• 2021-04-14 问题

    //指针与动态内存分配示例――单位人员信息管理 //某单位职工基本情况表如表所示。由于职工众多,现计划开发一款软件以提高管理效率,要求先输入职工原始信息,计算出各人实发工资(=基本工资+奖金),再按职工编号升序排序后输出以方便查看。 //请选择空白位置的全部正确答案 #include #include #define N 300000 int 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(" 请输入职工总数(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(" 内存空间的分配不成功! "); else//内存分配成功,进行后续操作 { printf("请逐个输入职工信息(职工编号 部门 姓名 性别 身份证号 职称 基本工资 奖金): "); 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(" 职工基本信息表如下(按职工编号升序排列): "); for(i=1;i<=n;i++) printf("%10d%12s%12s%4s%20s%12s%6d%6d%6d ",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; }

    //指针与动态内存分配示例――单位人员信息管理 //某单位职工基本情况表如表所示。由于职工众多,现计划开发一款软件以提高管理效率,要求先输入职工原始信息,计算出各人实发工资(=基本工资+奖金),再按职工编号升序排序后输出以方便查看。 //请选择空白位置的全部正确答案 #include #include #define N 300000 int 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(" 请输入职工总数(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(" 内存空间的分配不成功! "); else//内存分配成功,进行后续操作 { printf("请逐个输入职工信息(职工编号 部门 姓名 性别 身份证号 职称 基本工资 奖金): "); 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(" 职工基本信息表如下(按职工编号升序排列): "); for(i=1;i<=n;i++) printf("%10d%12s%12s%4s%20s%12s%6d%6d%6d ",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; }

  • 1