要发工资了!
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。