输入10名学生的序号和每个学生三门功课(数学、英语、C语言程序设计)的成绩,编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,且打印一张按高分到低分名次排序的成绩单.然后

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 01:21:21

输入10名学生的序号和每个学生三门功课(数学、英语、C语言程序设计)的成绩,编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,且打印一张按高分到低分名次排序的成绩单.然后
输入10名学生的序号和每个学生三门功课(数学、英语、C语言程序设计)的成绩,编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,且打印一张按高分到低分名次排序的成绩单.然后用折半查找法查找有没有平均分为85分的学生,如果找到,则输出相关的序号,如果没有找到,则输出没有找到的信息.
要求:
(1) 排序用一个函数实现.
(2) 打印的成绩单表项包括:序号、数学、英语、 C语言程序设计、总分、平均分.
折半查找法才是重点

输入10名学生的序号和每个学生三门功课(数学、英语、C语言程序设计)的成绩,编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,且打印一张按高分到低分名次排序的成绩单.然后

#include<stdio.h>

#include<stdlib.h>

struct student

{ int num;

  int math;

  int english;

  int c;

  int sum;

  int average;

};

void main()

{struct student s[10];

int i;

void sum( student s[]);

void average(student s[]);

void sort(student s[]);

void print(student s[]);

void search(student s[]);


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

 {

printf("请输入%d个学生的信息-------学号------数学成绩------英语成绩-----c语言成绩\n",i+1);

     scanf("%d,%d,%d,%d",&s[i].num,&s[i].math,&s[i].english,&s[i].c);

  }

sum(s);

average(s);

sort(s);

search(s);

print(s);

system("pause");//我用的是vs2010编译器,楼主用别的话改下这条

}

void sum( student s[])

{ int i;


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

s[i].sum=s[i].math+s[i].english+s[i].c;

}

void average(student s[])

{

int i;


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

s[i].average=(s[i].math+s[i].english+s[i].c)/3;

}

void sort(student s[])


{

  int i,j,k;

  struct student temp;

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

   {   k=i;

  for(j=i+1;j<10;j++)

 if(s[k].sum<s[j].sum)

 k=j;

    if(k!=i)

   {temp=s[i];

    s[i]=s[k];

s[k]=temp;

   }

 }

}

void search(student s[])

{int mid,low,high,found;

 low=0;

 high=9;

 found=0;

 while(low<=high)

 {mid=(high+low)/2;

  if(s[mid].average==85){found=1;break;}

  else if(85>s[mid].average)

 high=mid-1;

  else low=mid+1;


 }

 if(found==1) 

printf("平均分为85分的学生序号为%d\n",s[mid].num);

 else printf("平均分为85分的学生不存在\n");

}

void print(student s[])

{int i;

printf("学号--数学成绩---英语成绩---c语言课程设计成绩---平均分---总分\n");

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


printf("%-4d%5d%5d%5d%5d%5d\n",s[i].num,s[i].math,s[i].english,s[i].c,s[i].average,s[i].sum);

}


注意输入时每个都用逗号隔开,看不懂再问我

输入10名学生的序号和每个学生三门功课(数学、英语、C语言程序设计)的成绩,编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,且打印一张按高分到低分名次排序的成绩单.然后 输入10个同学的姓名和三门课程的成绩,求每个学生的总分,输出总分最高学生的姓名, C语言 编程!二、实验题目:有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总,平均.二、实验题目:有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总成绩和平均成绩,从键 描述 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩.关于输入 第一行有两个整数,学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n C语言编程,从键盘上输入学生的三门课程成绩,求总成绩和平均成绩 编写程序要求从键盘输入若干名学生数据(包括学号 姓名 三门课成绩 ),计算每位学生的总分,将原有数据和 C++编辑一个求多个某门功课总分和平均分的程序.1要求每个学生信息包括姓名和某科功课成绩2假设5个学生3、使用静态成员计算5个学生的总成绩和平均分 有 5 个学生,每个学生的数据包括学号、班级、姓名、三门课成绩.从键盘输入5 个学生数据,要求打印出每个要求:1、定义学生结构体.2、用一个函数实现5 个学生数据的输入,用另一个函数负 C语言基础题.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和 有四名学生,考四门功课,求出每位学生的总分和平均分,及所有学生每门功课平均分,和所有功课的平均分 1、从键盘上输入4个学生3门功课的成绩(用二维数组存放)和学生姓名(用一维数组存放),按下列要求编程:①求出每个学生的总分;②求出每门课程的平均分;③调用函数实现排序,之后 JAVA编程:有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高 excel中 英语三门功课每个分数段的人数 编写程序处理10个学生的信息,每个学生的信息包括:学号、姓名、三门成绩.要求从键盘输入学生的数据用一个函数实现,输出成绩表(包括每个学生的学号、姓名、三门成绩及平均分数)用 sql复杂查询语句问题求救:列出选修了三门以上课程的学生和课程名列出选修了三门以上课程的学生和课程名表结构:-- 学生信息 XSXX(学号,姓名,性别,出生日期,班级号);--课程信息 KCXX(课程 3.编写一个程序和界面输入某学生的语文、数学英语三门课程的成绩,单击计算可以得出该学生的平均分和总分4.编写一个程序,根据输入学生的成绩分数得出学生的等级“合格”、“良好”“ 检索出选修课程至少等于三门的学生学号和选课门数 夺冠100分小学六年级上学期卷纸,第十五周练卷,总复习(一)76页第八大题3小题……一个学生在语文、数学、英语三门学科竞赛中,三门功课的平均分是92分,已知英语86分,语文和数学两科的平