要发工资了!

要发工资了!

时间: 1ms        内存:128M

描述:

定义一个N行4列的二维数组,各行分别职工的基本工资、奖金、扣款和应发工资。输入n名职工的基本工资、奖金和扣款,计算并输出每名职工的应发工资,最后再输出所有职工的工资总额。

输入:

先输入职工人数n,
再输入这n名职工的基本工资、奖金、扣款

输出:

分n行显示每名职工的工资情况,
再输出所有职工的工资总额。
所有输出数据均保留两位小数

示例输入:

5
977.20 785.32 87.56
786.43 639.23 68.10
733.43 814.72 85.11
911.12 874.98 88.42
763.22 811.00 89.21

示例输出:

977.20 785.32 87.56 1674.96
786.43 639.23 68.10 1357.56
733.43 814.72 85.11 1463.04
911.12 874.98 88.42 1697.68
763.22 811.00 89.21 1485.01
1535.65

提示:

参考答案(内存最优[1092]):


#include <stdio.h>
#define N 100
int find(int *, int, int);
int main( )
{
    double salery[N][4]; //保存工资的数组
    double sum,aver; //保存平均成绩的数组
    int i,j,n;
    scanf("%d",&n);
sum=0;
for(i=0;i<n;i++)
    scanf("%lf%lf%lf",&salery[i][0],&salery[i][1],&salery[i][2]);
for(i=0;i<n;i++)
{
    salery[i][3]=salery[i][0]+salery[i][1]-salery[i][2];
    sum=sum+salery[i][3];
}
aver=sum/n;


    for(i=0; i<n; i++)
    {
        for(j=0; j<4; j++)
            printf("%.2f ",salery[i][j]);
        printf("\n");
    }
    printf("%.2f\n",aver);
    return 0;
}

参考答案(时间最优[0]):


#include <stdio.h>
#define N 100
int find(int *, int, int);
int main( )
{
    double salery[N][4]; //保存工资的数组
    double sum,aver; //保存平均成绩的数组
    int i,j,n;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<4;j++)
        {
            if(j!=3)
                scanf("%lf",&salery[i][j]);
            else
                salery[i][j] =  salery[i][0]+salery[i][1]-salery[i][2];
        }
    }
    sum = 0;
    for(i=0;i<n;i++)
    {
        sum+=salery[i][3];
    }
    aver = sum/n;

    for(i=0; i<n; i++)
    {
        for(j=0; j<4; j++)
            printf("%.2f ",salery[i][j]);
        printf("\n");
    }
    printf("%.2f\n",aver);
    return 0;
}

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

点赞

发表评论

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