新网创想网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言工资排序函数 计算工资c语言编程

如何用C语言编写工资排名

这很简单,应该是习题,我给思路

成都创新互联-云计算及IDC服务提供商,涵盖公有云、IDC机房租用、成都移动服务器托管、等保安全、私有云建设等企业级互联网基础服务,欢迎联系:13518219792

首先肯定要定义一个职工的结构体,里面有工号,姓名,工资等属性。

建立一个结构体数组。

排序的话,最简单的就是冒泡了。

写入到文件,就对文件指针进行操作就是了,写入结构体的语句是

fwrite(w[i],sizeof(struct worker),1,fp);

显示的话就读出再打印出来就行了。

fread(w[i],sizeof(struct worker),1,fp);

c语言书上都有,自己多看看,都是每个章节的一些基础操作,写出来对你很有作用的

C语言工资排序

#includestdio.h

struct worker

{

char name[20];

double a,b,c,sum;

};

int main()

{

int i,n,j;

scanf("%d",n);

struct worker x[100],temp;

for(i=1;i=n;i++)

{

scanf("%s%lf%lf%lf",x[i-1].name,x[i-1].a,x[i-1].b,x[i-1].c);

x[i-1].sum=x[i-1].a+x[i-1].b+x[i-1].c;

}

for(i=0;in;i++)

for(j=i;jn;j++)

{

if(x[i].sumx[j].sum)

{

temp=x[i];

x[i]=x[j];

x[j]=temp;

}

}

for(i=0;in;i++)

printf("%s %.2f\n",x[i].name,x[i].sum);

return 0;

}

用C语言做员工工资排序

#includestdio.h

#includestring.h

typedef struct _student{

char name[20];

char sex[20];

double salary;

}Student;

int main(){

int i,j;

Student student[5];

for(i=0;i5;i++){

scanf("%s %s %lf",student[i].name,student[i].sex,student[i].salary);

}

for(i=0;i5;i++){

for(j=i;j5;j++){

if(student[i].salary student[j].salary){

Student temp = student[i];

student[i]=student[j];

student[j]=temp;

}

}

}

for(i=0;i5;i++){

printf("%s %s %.2f\n",student[i].name,student[i].sex,student[i].salary);

}

return 0;

}

用c语言写一个职工工资管理程序

思路:

使用结构体保存职工信息,设计单独的函数,实现录入,按职工工资排序,分解单双数职工,读取和写入文件,显示数据等功能。

1 - 从键盘录入信息到数组结构并保存至文件,录入+写入文件。

2 - 从磁盘文件中读出这些数据,依次打印出来, 读取文件+显示数据。

3 - 对职工数据按工资高低排序,将排好序的各记录存放在文件worker2.dat中, 排序+写入文件。

4 - 将职工号为单数和偶数的职工信息分别存放另两个磁盘文件worker3.dat和worker4.dat中, 分解单双数职工+写入文件。

5 - 并从这两个文件中读出职工信息在显示器上显示出来, 读取文件+显示数据。

代码片段如下:

int main(int argc, char* argv[])

{

worker arr[WORKER_NUMBER];

int cnt = WORKER_NUMBER;

worker odd[WORKER_NUMBER];

int oddnum = 0;

worker even[WORKER_NUMBER];

int evennum = 0;

clear_worker_array(arr, cnt);

clear_worker_array(odd, cnt);

clear_worker_array(even, cnt);

//1.录入并保存至worker1.dat

entering_data(arr, cnt);

if( save_file(arr, cnt, filename[0]) == 0 )

{

printf("原始记录已成功保存至文件 - %s\n", filename[0]);

}

//2.读取worker1.dat并显示

clear_worker_array(arr, cnt);

if( load_file(arr, cnt, filename[0]) == 0 )

{

printf("载入文件 - %s\n", filename[0]);

}

show_data(arr, cnt);

//3.排序并保存至worker2.dat

sort_by_salary(arr, cnt);

if( save_file(arr, cnt, filename[1]) ==0 )

{

printf("按工资排序后的记录已成功保存至文件 - %s\n", filename[1]);

}

//4.保存单数和双数职工号信息至worker3.dat和worker4.dat

filter_workers(arr, cnt, odd, oddnum, even, evennum);

if( save_file(odd, oddnum, filename[2]) == 0 )

{

printf("职工号为单数的记录已成功保存至文件 - %s\n", filename[2]);

}

if( save_file(even, evennum, filename[3]) == 0 )

{

printf("职工号为双数的记录已成功保存至文件 - %s\n", filename[3]);

}

//5.读取worker3.dat和worker4.dat并显示

clear_worker_array(odd, oddnum);

oddnum = 0;

if( load_file(odd, oddnum, filename[2]) == 0 )

{

printf("载入文件 - %s\n", filename[2]);

}

show_data(odd, oddnum);

clear_worker_array(even, oddnum);

evennum = 0;

if( load_file(even, evennum, filename[3]) == 0 )

{

printf("载入文件 - %s\n", filename[3]);

}

show_data(even, evennum);

return 0;

}

为了测试方便,此处的宏只指定了5个职工的信息,若要达到你要求的,直接改成10即可。运行结果如下:

完整代码请参考附件 - worker_manager.c

:by never715

哪位大师能帮我做个C语言作业啊,急啊!!!

/*测试方法,你可以把100变为4,10变为2,这样方便测试*/

#includestdio.h

struct teacher

{

int tno;//教师号

char sname[8];//姓名

float money[10];//工资项

float sum;//工资

}; struct teacher s[100];

void input(struct teacher s[100]);

void money(struct teacher s[100]);

void sort(struct teacher s[100]);

void output(struct teacher s[100]);

void main()

{

input(s);//定义函数输入所有教师的信息及工资信息;

money(s);//定义函数计算各个教师的工资;

sort(s);//定义函数按工资由高到低进行排序;

output(s);//定义函数输出教师的姓名和对应的工资。

}

void input(struct teacher s[100])

{

int i,j;

for(i=0;i100;i++)

{

scanf("%d",s[i].tno);

scanf("%s",s[i].sname);

for(j=0;j10;j++)

{

scanf("%d",s[i].money[j]);

}

}

}

void money(struct teacher s[100])

{

int i,j;

for(i=0;i100;i++)

{

s[i].sum =0;

for(j=0;j10;j++)

{

s[i].sum=s[i].sum +s[i].money[j];

}

}

}

void sort(struct teacher s[100])

{

struct teacher t;

int i,j;

for(i=0;i99;i++)

{

for(j=1;j100;j++)

{

if(s[i].sum s[j].sum )

{

t=s[i];

s[i]=s[j];

s[j]=t;

}

}

}

}

void output(struct teacher s[100])

{

int i;

for(i=0;i100;i++)

{

printf("教师工号:%d 教师名:%s 工资:%f\n",s[i].tno ,s[i].sname,s[i].sum );

}

}

用C语言编写,要求是;输入5个工程师的工资,求最高和最低工资,要用数组来存放工程师的工资?

定义两个变量,分别表示最大值和最小值,变量初值均等于数组第一个元素值,循环5次输入数组值,同时与两变量比较大小,记录最大值和最小值。循环结束即可打印输出。

#includestdio.h

int main()

{

int i=0,p[5],max,min;

printf("输入5名工程师工资:\n");

while(i5)

{

  scanf("%d",p+i);

  if(i==0) max=min=p[0];

  else max=p[i]max?p[i]:max,min=p[i]min?p[i]:min;

  i++;

}

printf("最大工资为%d,最小工资为%d\n",max,min);

return 0;

}


分享名称:c语言工资排序函数 计算工资c语言编程
网址分享:http://www.wjwzjz.com/article/hhhpho.html
在线咨询
服务热线
服务热线:028-86922220
TOP