一个题目,涉及结构体数组的初始化与输出

题目如下:
微软销售部招聘在线销售人员11名,三个月的业绩考核期,业绩考核分为销售业绩考核和工作激情度考核。销售业绩单位为套,工作激情度单位为分。三个月后,11个人的考核信息分别如下:
A01 198件 97分
A02 90件  103分
A02 76件  78分
A03 123件 100分
A04 77件  87分
A05 10件  54分
A06 81件  104分
A07 110件 87分
A08 45件  41分
A09 123件 99分
A10 140件 88分
A11 109件 98分
要求:

如果销售业绩高于总的平均件数N的销售人员将被留下,低于平均件数N的销售人员将被淘汰。请使用C++/C#编程实现:按照销售业绩从大到小的顺序输出被留下人员的编号信息,销售信息,工作激情度信息。


代码如下:

#include<stdio.h>
#include<stdlib.h>


typedef struct people{
char Num[3];
int sale;
int jq;
}people;


people A[11]={  //对结构体数组初始化时出现了很多问题,
{'A','0','1',198,97},
{'A','0','2' ,90  ,103},
{'A','0','3' ,123 ,100},
{'A','0','4' ,77  ,87},
{'A','0','5' ,10  ,54},
{'A','0','6' ,81  ,104},
{'A','0','7' ,110 ,87},
{'A','0','8' ,45  ,41},
{'A','0','9' ,123 ,99},
{'A','1','0' ,140 ,88},
{'A','1','1' ,109 ,98}
};


void sort(people A[11]){//用冒泡排序,先排序,再进行筛选,这样就不要删掉被淘汰人的信息。

        int i = 0;
int j = 10;
int ave,n,m;
people temp;
for(j=10; j>0; j--){
for(i=0; i<j; i++){
if(A[i].sale < A[i+1].sale){
temp.jq = A[i+1].jq;
for(m=0;m<3;m++){
temp.Num[j] = A[i+1].Num[j];
}
temp.sale = A[i+1].sale;
A[i+1].jq = A[i].jq;
A[i+1].sale = A[i].sale;
for(m=0;m<3;m++){
A[i+1].Num[j] = A[i].Num[j];
}
A[i].sale = temp.sale;
for(m=0;m<3;m++){
A[i].Num[j] = temp.Num[j];
}
A[i].jq = temp.jq;
}
}
}
for(i=0; i<11; i++){
for(j=0;j<3;j++){
printf("%c",A[i].Num[j]);
}
printf("   %d",A[i].sale);
printf("   %d\n",A[i].jq);
}


printf("\n--------------------\n");


ave = 0;
for(i=0; i<11; i++){
ave = ave + A[i].sale;
}
ave = ave / 11;
i = 0;
while(A[i].sale > ave){
i++;
}
n = i;
for(i=0; i<n; i++){
for(j=0;j<3;j++){
printf("%c",A[i].Num[j]);
}
printf("   %d",A[i].sale);
printf("   %d\n",A[i].jq);
}

}


int main(){

sort(A);
return 0;
}

结果如下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值