P1: 职工工资统计
时间: 1ms 内存:128M
描述:
定义了一个用于记录职工工资情况的结构体。请编写程序,输入职工人数,以及这些职工的姓名、基本工资、奖金,输出每位职工的姓名、基本工资、奖金和收入总额,并输出平均收入。 下面给出了程序的一部分,请将其余的部分补上。只提交begin和end之间的部分代码C:#include <stdio.h>using namespace std;struct WageList{char name[10]; //姓名double baseWage; //基本工资double bonus; //奖金double total; //总额};int main( ){WageList wage[100];//************* begin*****************//************* end *****************for(i=0; i<n; i++){printf("%s %.2lf %.2lf %.2lf\n",wage[i].name,wage[i].baseWage,wage[i].bonus,wage[i].total);}printf("average:%.2lf\n",aver);return 0;}C++:#include <iostream>#include <iomanip>using namespace std;struct WageList{char name[10]; //姓名double baseWage; //基本工资double bonus; //奖金double total; //总额};int main( ){WageList wage[100];//************* begin*****************//************* end *****************cout <<setiosflags(ios::fixed)<<setprecision(2);for(i=0; i<n; i++){cout<<wage[i].name<<" "<<wage[i].baseWage<<" "<<wage[i].bonus<<" "<<wage[i].total<<endl;}cout<<"average:"<<aver<<endl;return 0;}
输入:
先输入一个整数n表示职工人数接着输入n行表示n名职工的信息,分别是姓名、基本工资、奖金,数据用空格隔开
输出:
先输出n行表示n名职工的信息,分别是姓名、基本工资、奖金和收入总额,数据用空格隔开最后输出average:,后加n名职工的平均收入(保留2位小数)
示例输入:
3
Tom 3425.8 480.5
Jerry 4975.64 730.23
Jack 2240 520.35
示例输出:
Tom 3425.80 480.50 3906.30
Jerry 4975.64 730.23 5705.87
Jack 2240.00 520.35 2760.35
average:4124.17
提示:
参考答案(内存最优[1092]):
#include <stdio.h>
#include <stdlib.h>
struct WageList
{
char name[10]; //姓名
double baseWage; //基本工资
double bonus; //奖金
double total; //总额
};
int main( )
{
struct WageList wage[100]; int n,i;
double aver=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s%lf%lf",&wage[i].name,&wage[i].baseWage,&wage[i].bonus);
float sum=0;
for(int i=0;i<n;i++)
{
wage[i].total=wage[i].baseWage+wage[i].bonus;
sum+=wage[i].total;
}
aver=sum/n;
for(i=0; i<n; i++)
{
printf("%s %.2lf %.2lf %.2lf\n",wage[i].name,wage[i].baseWage,wage[i].bonus,wage[i].total);
}
printf("average:%.2lf\n",aver);
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
#include <iomanip>
using namespace std;
struct WageList
{
char name[10]; //姓名
double baseWage; //基本工资
double bonus; //奖金
double total; //总额
};
int main( )
{
WageList wage[100];
//************* begin*****************
int n,i;
double sum=0,aver;
cin>>n;
for(i=0; i<n; i++)
{
cin>>wage[i].name>>wage[i].baseWage>>wage[i].bonus;
wage[i].total=wage[i].baseWage+wage[i].bonus;
sum+=wage[i].total;
}
aver=sum/n;
//************* end *****************
cout <<setiosflags(ios::fixed)<<setprecision(2);
for(i=0; i<n; i++)
{
cout<<wage[i].name<<" "<<wage[i].baseWage<<" "<<wage[i].bonus<<" "<<wage[i].total<<endl;
}
cout<<"average:"<<aver<<endl;
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
