设计一个结构型,存放职工的编号、姓名、是否退休(已退休为'y'或'Y'、未退休为'n'或'N')和工资。编一个程序,输入20名职工的上述信息,统计并输出退休职工的人数、工资总额和平均工资,以及未退休职工的人数、工资总额和平均工资。
设计一个结构型,存放职工的编号、姓名、是否退休(已退休为'y'或'Y'、未退休为'n'或'N')和工资。编一个程序,输入20名职工的上述信息,统计并输出退休职工的人数、工资总额和平均工资,以及未退休职工的人数、工资总额和平均工资。

【正确答案】:#include
struct worker
{char hum[3]; char flag[2]; char name[8]; int wage;}
w[20];
main()
{
int i,n1,n2; float sum_y,ave_Y,sum_n,ave_n;
struct worker*P;P=w;
nl=n2=sum_y=sum_n=ave_y=ave_n=0;
for(i=0;i<20;i++)
{
printf("\n请输入职工%d的情况:\n",i+1);
printf("编号:"); scanf("%s",w[i].num);
printf("姓名:"); scanf("%S",W[i].name);
printf("是否退休:"); scanf("%S",W[i].flag);
printf("工资:"); scanf("%d",&w[i].wage)
}
for(i=0;i<20;i++)
{
if(toupper((P+i)->flag[0])=='Y')
{n1++;sum_y+=(P+i)一>wage;}
if(toupper((P+i)->flag[0])=='N')
{n2++;sum_n+=(P+i)->wage;}
}
ave_y=sum_y/nl;ave_n=sum_n/n2;
printf("已退休人数%d,工资总数%d,平均工资为%d\n",nl,sum_y,ave_y);
printf("未退休人数%d,工资总数%d,平均工资为%d\n",n2,sum n ave_n);
}

Top