Description
有5个职工,每个职工的数据包括:职工号(字符数组型)、姓名(字符数组型)、工资(整型),编写程序要求从键盘上输入职工们的数据,输出高于平均工资的职工信息及高于平均工资的职工人数。
Input
输入仅5行,输入5个职工的职工号、姓名、工资,要求数据之间用空格隔开。
Output
输出工资高于平均工资的职工信息,每个职工信息占一行;输出高于平均工资的职工人数,占一行。
Sample Input
111 yi 9700
222 er 9800
333 san 6000
444 si 9500
555 wu 5600
Sample Output
111 yi 9700
222 er 9800
444 si 9500
number=3
Source
方法一(结构体+数组):
#include <stdio.h>
struct test
{
char num[20];
char name[20];
int salary;
};
int main()
{
struct test peo[5];
int i,sum=0,ave,number=0;
for ( i = 0; i <5; i++)
{
scanf("%s%s%d",peo[i].num,peo[i].name,&peo[i].salary);
}
for ( i = 0; i <5; i++)
{
sum=sum+peo[i].salary;
}
ave=sum/5;
for ( i = 0; i <5; i++)
{
if (peo[i].salary>ave)
{
printf("%s %s %d\n",peo[i].num,peo[i].name,peo[i].salary);
number++;
}
}
printf("number=%d",number);
return 0;
}
方法二(结构体+指针):
#include <stdio.h>
struct test
{
char num[20];
char name[20];
int salary;
};
int main()
{
struct test peo[5];
struct test *p;
int sum=0,ave,number=0;
for ( p = peo; p <peo+5; p++)
{
scanf("%s%s%d",(*p).num,(*p).name,&(*p).salary);
}
for ( p = peo; p < peo+5; p++)
{
sum=sum+(*p).salary;
}
ave=sum/5;
for ( p = peo; p < peo+5; p++)
{
if ((*p).salary>ave)
{
printf("%s %s %d\n",(*p).num,(*p).name,(*p).salary);
number++;
}
}
printf("number=%d",number);
return 0;
}