P1: 职工工资统计

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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注