您的位置:首页 > 其它

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

2014-01-16 17:21 267 查看
题目如下:

微软销售部招聘在线销售人员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;

}

结果如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐