商城首页欢迎来到中国正版软件门户

您的位置:首页 > 软件教程 >按照分数从高到低排列的平均成绩实现对十个学生的输入

按照分数从高到低排列的平均成绩实现对十个学生的输入

  发布于2025-01-22 阅读(0)

扫一扫,手机访问

输入十个学生的成绩分别用函数实现:平均成绩按分数从高到低

输入十个学生的成绩分别用函数实现:平均成绩按分数从高到低

#include

void input(float *g,int n){

int i;

for(i=0; i

printf("第 %d 个成绩:",i+1);

scanf("%f",&g[i]);

}

}

void output(float *g,int n){

int i;

for(i=0; i

printf("%d %5.1f\n",i+1,g[i]);

}

void sort(float *g,int n){

int i,j,k;

float t;

for(i=0; i

t=g[i],k=i;

for(j=i+1; j

if(g[j]>t)

t=g[j],k=j;

g[k]=g[i];

g[i]=t;

}

}

float average(float *g,int n){

int i;

float s=0.0;

for(i=0; i

s+=g[i];

return s/n;

}

void main()

{

float g[10];

input(g,10);

printf("排序前:\n");

output(g,10);

float a=average(g,10);

printf("平均值:%6.2f\n",a);

sort(g,10);

printf("排序后:\n");

output(g,10);

}

C语言编写按分数排序的函数

展开全部

楼上的用的是C++

若单纯的用C那就是这样

#include

#define print "NO.%d %d %d %d %d %3.2f %3.2f\n",1+i,stu[i].num,stu[i].mat,stu[i].ENG,stu[i].com,stu[i].aver,stu[i].total//宏定义节约时间

struct student

{

int num;

int mat;

int ENG;

int com;

float aver;

float total;

}stu[10];//定义结构体变量

void main()

{ int i;

void take_turn_print(struct student stu1[10]) ;

float sum(int x,int y,int z);//声明和函数

for(i=0;i<10;i++)

scanf("%d%d%d%d",&stu[i].num,&stu[i].mat,&stu[i].ENG,&stu[i].com);

for(i=0;i<10;i++)

{

stu[i].total=sum(stu[i].mat,stu[i].ENG,stu[i].com);//调用和函数

stu[i].aver=stu[i].total/3;

}

take_turn_print(stu);//调用排序 打印函数

}

void take_turn_print(struct student stu1[10])

{

void change(int *x,int *y);//声明换位函数

void change1(float *x,float *y);//声明换位函数

int i,j;

for(j=0;j<9;j++)//冒泡排序 为理解简单 就没用别的排序方法 哈哈

{

for(i=0;i<9-j;i++)

{

if(stu1[i].aver{

change(&stu1[i].num,&stu1[i+1].num);// 值交换

change(&stu1[i].mat,&stu1[i+1].mat);// 值交换

change(&stu1[i].ENG,&stu1[i+1].ENG);// 值交换

change(&stu1[i].com,&stu1[i+1].com);// 值交换

change1(&stu1[i].aver,&stu1[i+1].aver);// 值交换

change1(&stu1[i].total,&stu1[i+1].total);// 值交换

}

}

}

for(i=0;i<10;i++)

printf(print);//打印

}

void change(int *x,int *y)

{

int i;

i=*x;

*x=*y;

*y=i;//利用指针做变量替换

}

void change1(float *x,float *y)

{

float i;

i=*x;

*x=*y;

*y=i;//利用指针做变量替换

}

float sum(int x,int y,int z)

{

float i;

i=(float)(x+y+z);

return(i);

}

前几天也是帮同学做这样的题

一模一样

看来你也是WH大学的

用C编写函数实现排序设计排序算法对N个学生的成绩进行排序

//a为输入的数据数组,n 为数组的元素个数,style 为排序方式

//没有编译器,没测试

void sort(int a[],int n,char style)

{

int i,j,t;

n--;

if (style=='a')

{

while(n>0)

{j=0;

for(i=0;i

if(a[i]>a[i+1])

{ t=a[i];

a[i]=a[i+1];

a[i+1]=t;

j=i;

}

n=j;

}

}

else

{

while(n>0)

{j=0;

for(i=0;i

if(a[i]

{ t=a[i];

a[i]=a[i+1];

a[i+1]=t;

j=i;

}

n=j;

}

}

}

本文转载于:https://www.docexcel.net/show/24_142733.html 如有侵犯,请联系admin@zhengruan.com删除

热门关注