职工工作量c语言调试分析,c语言职工工作量统计

#include

#include

struct staff

{

char name[12];

int jobnumber;

int number;

};

void main()

{

int i,j,t,n,g;

struct staff sta[50],h[50];

printf("*****请输入您要输入的数据总数n为*****\n");

scanf("%d",&n);

printf("请输入职工的信息\n");

for(i=0;i

{

scanf("%s,%d,%d\n",&sta[i].name,&sta[i].jobnumber,&sta[i].number);

/*将对同一职工的多次输入叠加在一起*/

}

for(i=0;i

{

for(j=0;j

{

if(sta[j].jobnumber==sta[i].jobnumber)

{

sta[j].number+=sta[i].number;

for(;i

{

strcpy(sta[i].name,sta[i+1].name);

sta[i].jobnumber=sta[i+1].jobnumber;

sta[i].number=sta[i+1].number;

}

g++;

}

}

}

/*按产品数量将职工一一排序*/

for(i=0;i

{

for(j=0;j

{

if(sta[i].number>sta[j].number)

{

if(i>j)

{

strcpy(h[i].name,sta[i].name);

strcpy(sta[i].name,sta[j].name);

strcpy(sta[j].name,h[i].name);

t=sta[i].jobnumber;

sta[i].jobnumber=sta[j].jobnumber;

sta[j].jobnumber=t;

t=sta[i].number;

sta[i].number=sta[j].number;

sta[j].number=t;

}

}/*对于产品数量相同的员工 按照工号大小排序*/

else if(sta[i].number==sta[j].number)

{

if(i>j)

{

if(sta[i].jobnumber

{

strcpy(h[i].name,sta[i].name);

strcpy(sta[i].name,sta[j].name);

strcpy(sta[j].name,h[i].name);

t=sta[i].jobnumber;

sta[i].jobnumber=sta[j].jobnumber;

sta[j].jobnumber=t;

t=sta[i].number;

sta[i].number=sta[j].number;

sta[j].number=t;

}

}

}

}

}

printf("经过排序后的数据为\n");

for(i=0;i

{

printf("排名%d,名字%s,职号%d\n",i+1,sta[i].name,sta[i].jobnumber);

}

}程序运行为什么老出错 。。题目是

职工工作量统计系统设计

编写一个程序,该程序输入职工工号和完成的产品数量,程序允许同一职工有多次输入,由程序对其完成的产品数量实现累计。程序按完成数量对他们排序,并确定他们的名次。按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值