A. 设计一个公司的数据结构,并使用结构指针数组储存职员信息,统计公司员工工资总额和平均工资。c语言。
/* please input the total number of employees : 3 please input 1/3 massage:name age salary 胥立畅 32 6890.50 please input 2/3 massage:name age salary 王莹莹 24 3698.85 please input 3/3 massage:name age salary 李大海 28 4896.80 胥立畅 32 6890.00 王莹莹 24 3698.00 李大海 28 4896.00 Press any key to continue */ #include <stdio.h> #include <string.h> #include <malloc.h> typedef struct employee { int age; char *name; double salary; }PEMP; void update(PEMP a[],int id,int age,char *name,double salary) { a[id].age = age; a[id].salary = salary; a[id].name = (char *)malloc(strlen(name)*sizeof(char) + 1); strcpy(a[id].name,name); } void reading(PEMP a[],int n) { int i,age; double salary; char name[30]; for(i = 0;i < n;++i) { printf("please input %d/%d massage:name age salary\n",i + 1,n); scanf("%s %d %lf",name,&age,&salary); update(a,i,age,name,salary); } } double Adp(PEMP *a,int n) { int i; double sum = 0.0; for(i = 0; i < n; ++i) sum += a[i].salary; return sum; } void Show(PEMP a[],int n) { int i; for(i = 0; i < n; ++i) printf("%s %d %.2lf\n",a[i].name,a[i].age,a[i].salary); printf("\n"); } int main() { int n; double sum; PEMP company[30]; printf("please input the total number of employees : "); scanf("%d",&n); reading(company,n); Show(company,n); sum = Adp(company,n); printf("工资总额:%.2lf,平均工资 : %.2lf\n",sum,sum/n); return 0; }
B. c语言作业
//注意输入的时候不能输入空数(直接按enter),否则计算的平均工资将出错
#include
void main()
{
double money_ave[4];
int money,n,i;
for (n=1;n<4;n++)
{ printf("请依次输入第%d个班组各成员的工资(元)
",n);
i=0;
money=0;
while (1)
{
i++;
scanf("%d",&money);
if (money==-1)
{
i--;
break;
}
money_ave[n]+=money;
}
money_ave[n]=( float )money_ave[n]/( float )i;
}
for (n=1;n<4;n++)
printf("第%d个班组的平均工资为%f(元)
",n,money_ave[n]);
}
C. c语言编程:建立一个结构体数组
分析题意:
一、要定义两个结构体,一个是日期年月日,一个是员工。
二、程序包含三个功能:1、结构数组的输入。2、结构数组的输出。3、统计平均工资。根据编程习惯,三功能要写成独立函数,方便扩展和调用。
ps:员工数量定义成常量,也为编程习惯,便于修改。另外,日期验证我只写了月份检测给你参考。需扩展,自行编写函数验证。
#include <stdio.h>
#define M 3//最大员工数量
typedef struct date
{
int year;
int month;
int day;
}YMD;
typedef struct employee
{
int id;//工号
char name[20];//姓名
YMD date;//日期
int wage;
}EME;
void inputInfo(EME emes[]);//输入
void outputInfo(EME emes[]);//输出
float getAvg(EME emes[]);//求平均工资
int main()
{
EME emes[M];//员工结构体数组
inputInfo(emes);
outputInfo(emes);
printf("平均工资:%f",getAvg(emes));
return 0;
}
void inputInfo(EME emes[])
{
int i;
for(i=0;i<M;i++)
{
printf("请输入员工%d的信息: ",i+1);
printf("工号:"),scanf("%d",&emes[i].id);
printf("姓名:"),scanf("%s",emes[i].name);
printf("日期(分别输入年月日,空格分割):"),scanf("%d%d%d",&emes[i].date.year,&emes[i].date.month,&emes[i].date.day);
if(emes[i].date.month>12 || emes[i].date.month<=0)//日期输入的验证不通过时,重新输入,验证可单独写函数,这里只做参考!
{
printf("输入日期不符合,请重新输入! "),i--;
continue;
}
printf("工资:"),scanf("%d",&emes[i].wage);
printf(" ");
}
}
void outputInfo(EME emes[])
{
int i;
printf("所有员工的信息为:---------------------------- ");
for(i=0,printf("员工%d的信息: ",i+1);i<M;i++)
{
printf("工号:%d ",emes[i].id);
printf("姓名:%s ",emes[i].name);
printf("日期:%04d-%02d-%02d ",emes[i].date.year,emes[i].date.month,emes[i].date.day);
printf("工资:%d ",emes[i].wage);
printf(" ");
}
}
float getAvg(EME emes[])
{
int i;
float sum=0;
for(i=0;i<M;i++)
sum+=emes[i].wage;
return sum/M;
}
D. c语言函数名:avgSalary * 功能:计算多个职工的平均工资、最高工资和最低工资 *
判断语句出错 应该拿上一次的high出来对比。你的判断漏洞在于如果k大于i。i小于m的时候不成立
E. 用C语言编写一个求10个人平均工资的程序
#include<stdio.h>
void main()
{
float wages[10],sum=0;
int i;
printf("请输入10人工资\n");
for(i=0;i<10;i++){
scanf("%f",&wages[i]);
sum=sum+wages[i];
}
printf("平均工资为%7.2f\n",sum/10);
}
纯手工~可能会有小错误,思路应该没有问题。
F. 统计全单位人员的平均工资。单位的人数不固定,工资数从键盘先后输入
用IF循环语句,可以设置一个输入结束的字符如Q进行判断是否结束输入,通过循环录入员工工资,并将输入的工资数每次加到总数里,输入次数也计算下,最后出平均结果,筛选也可以用循环判断下符合条件的打印出来
G. 用c语言编写一个求n个人平均工资的程序
#include
<stdio.h>
void
main(
)
{
int
n
=
0
,
i
=
0
;
float
total_salary
=
0.0,
every_salary
=
0.0
;
scanf("%d",
&n)
;
/*
输入要计算的
n
个人
*/
for(
i
=
1
;
i
<=
n
;
i
++
)
{
scanf("%f",
&every_salary)
;
/*
输入每一个人的薪水
*/
total_salary
+=
every_salary
;
/*
全部薪水变量进行累加
*/
}
printf("Average
salary
is:
%f\n",
total_salary/n)
;
/*
循环结束后输出
n
个人的平均工资
*/
}
H. 用C语言写一个程序,要求如下:用C语言表示10个人在3个月中平均工资的程序
#include<stdio.h>
#define NUM 3
struct pep
{
float one;
float two;
float three;
}PP[NUM];
int max(struct pep *x,struct pep *y)
{
if((x->three/x->one)>(y->three/y->one))return -1;
else if((x->three/x->one)<(y->three/y->one))return 1;
else
return 0;
}
int main()
{ int i;
for(i=0;i<NUM;i++)
{
scanf("%f %f %f",&PP[i].one,&PP[i].two,&PP[i].three);
}
qsort(PP,NUM,sizeof(struct pep),max);
printf("%.2f %.2f %.2f ",PP[0].one,PP[0].two,PP[0].three);
printf("\n");
}
要三十行就把输入语句拆成三个,max函数里面-1变1,1变-1就输出最小的。这个是输出最大的
I. 请大神帮忙用循环结构设计下面这个程序。。C语言。
float s; //每个人工资
float t=0; //工资总和
int n=0; //人数
scanf("%f", &s);
if(s != -1)
{ do
{t = t+s;
n++;
scanf("%f", &s);
}while(s!= -1);
printf("%f", t/n);
}
J. c语言编程:计算四项工资平均值,并将结果保存到新文件中 我目前写的如下,帮忙改
你没写保存文件的代码