Problem C: 结构体---职工信息结构体
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1074 Solved: 613
[ Submit][ Status][ Web Board]
Description
编写程序,定义一个存放职工信息的结构体类型,职工信息包括职工姓名、工作年限、工资总额。初始化5名职工的信息,对工作年限超过30年的职工每人加100元工资,要求分别输出工资变化之前和之后的所有职工的信息。
Input
输入5个员工的职工姓名、工作年限、工资总额
Output
输出两部分,第一部分输出工资变化之前所有职工的信息,第二部分输出工资变化之后的所有职工的信息
Sample Input
zhang1 5 1000
zhang2 10 2000
zhang3 20 3000
zhang4 40 4000
zhang5 50 5000
Sample Output
原始工资
姓名 年限 工资
zhang1 5 1000
zhang2 10 2000
zhang3 20 3000
zhang4 40 4000
zhang5 50 5000
加薪后工资
姓名 年限 工资
zhang1 5 1000
zhang2 10 2000
zhang3 20 3000
zhang4 40 4100
zhang5 50 5100
HINT
空4格
代码实现:
#include<stdio.h>
struct Worker
{
char name[20];
int wt;
int mon;
};
int main()
{
void input(struct Worker a[]);
void output(struct Worker a[]);
void outputn(struct Worker a[]);
struct Worker a[5],*p=a;
input(p);
output(p);
outputn(p);
return 0;
}
void input(struct Worker a[])
{
int i;
for(i=0;i<5;i++)
{
scanf("%s %d %d",&a[i].name,&a[i].wt,&a[i].mon);
}
}
void output(struct Worker a[])
{
int i;
printf("原始工资\n");
printf("姓名 年限 工资\n");
for(i=0;i<5;i++)
{
printf("%s %d %d\n",a[i].name,a[i].wt,a[i].mon);
}
}
void outputn(struct Worker a[])
{
int i;
printf("加薪后工资\n");
printf("姓名 年限 工资\n");
for(i=0;i<5;i++)
{
if(a[i].wt>=30)
{
a[i].mon=a[i].mon+100;
}
}
for(i=0;i<5;i++)
{
printf("%s %d %d\n",a[i].name,a[i].wt,a[i].mon);
}
}