完成以下程序,并进行调试某班期末考试科目为数学、英语和计算机,有最多不超过30人参加考试。
完成以下程序,并进行调试
某班期末考试科目为数学、英语和计算机,有最多不超过30人参加考试,考试后要求:1)计算每个学生的总分和平均分;
2)按总分成绩由高到低排出成绩的名次;
3)打印出名次表,表格内包括学生学号、各科分数、总分和平均分;
4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。
【提示】:用二维数组score存放每个学生各门课程的成绩,用一维数组num存放每个学生的学号,用一维数组sum存放每个学生的总分,用一维数组aver存放每个学生的平均分。
程序代码:
#include <stdio.h>
void total(int score[][3],int n,int sum[])//计算总分
{
int i,j;
for (i=0;i<n;i++)
{
sum[i] = 0;
for(j=0;j<3;j++)
sum[i] += score[i][j];
}
}
void averger(int sum[],int n,float aver[])//计算平均分
{
int i;
for(i=0;i<n;i++)
aver[i] = 1.0 * sum[i]/3;
}
void sort(int sum[],int n,int score[][3],float aver[],int num[])//按总分排序
{
int i,j;
int t,k;
float f;
for (i=0;i<n-1;i++)
{
for (j=0;j<n-1-i;j++)
{
if (sum[j] < sum[j+1])
{
t = sum[j];
sum[j] = sum[j+1];
sum[j+1]=t;
f=aver[j];//交换平均分
aver[j+1]=aver[j+1];
aver[j+1]=f;
for(k=0;k<3;k++)//交换score
{
t = score[j][k];
score[j][k]= score[j+1][k];
score[j+1][k] = t;
}
t = num[j];//交换学号
num[j]=num[j+1];
num[j+1]=t;
}
}
}
}
void pm(int sum[],int pm[],int n)//排名,并保存名次
{
int i = 0;
int mc = 1;
pm[0] = 1;
for (i=1;i<n;i++)
{
if(sum[i]== sum[i-1])
pm[i] = mc;
else
{
mc++;
pm[i] = mc;
}
}
}
void printmc(int num[],int n,int mc[])//打印名次表
{
int i;
printf("学号 排名\n");
for (i=0;i<n;i++)
{
printf("%2d %d\n",num[i],mc[i]);
}
}
int find(int num[],int score[][3],int n,int sum[],int mc[],int k)//查找k
{
int i=0;
for (i=0;i<n;i++)
{
if(num[i] == k)
{
printf("学号:%d\n",num[i]);
printf("成绩:%d %d %d\n",score[i][0],score[i][1],score[i][2]);
printf("总成绩:%d\n",sum[i]);
printf("名次:%d\n",mc[i]);
break;
}
}
if(i==n)
{
printf("未找到该学号学员\n");
}
return 0;
}
int main()
{ int score[30][3],sum[30],num[30],mc[30];
float aver[30];
int n,k,i,j;
printf("请输入学员人数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入学员%d的数学、英语、计算机成绩:",i+1);
num[i] = i+1;
for(j=0;j<3;j++)
scanf("%d",&score[i][j]);
}
total(score,n,sum);//计算总成绩
averger(sum,n,aver);//计算平均成绩
sort(sum,n,score,aver,num);//根据总成绩排序
pm(sum,mc,n);//排名
printmc(num,n,mc);//打印排名
printf("请输入要查找的学员学号:");
scanf("%d",&k);
find(num,score,n,sum,mc,k);//查找某个学号学员的信息
return 0;
}
完成以下程序,并进行调试某班期末考试科目为数学、英语和计算机,有最多不超过30人参加考试。相关推荐
- 1、某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。考试后要求:(1)计算每个学生的总分和平均分;(2)按总分成绩由高到低排出成绩的名次;(3)打印出名
#include<iostream> #include<iomanip> using namespace std; int main() { int a[30][6], ...
- 某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过40人参加考试。请编程计算:(1)每个学生的总分和平均分;(2)每门课程的总分和平均分。
某班期末考试科目为数学(MT).英语(EN)和物理(PH),有最多不超过40人参加考试.请编程计算:(1)每个学生的总分和平均分:(2)每门课程的总分和平均分. **输入格式要求:"%d&q ...
- C++程序设计基础,数组实验(题干信息:某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超30人参加考试,具体问题在下面)
(1)计算每个学生的总分和平均分: (2)按总分成绩由高到低排出成绩的名次: (3)打印出名次表,表格内包括学生编号.各科分数.总分和平均分: (4)任意输入一个学号,能够查找出该学生在班级中的排名及 ...
- 某班有最多不超过30人(具体人数由实际输入决定)参加期末考试,最多不超过6门(具体门数由实际输入决定)。
某班有最多不超过30人(具体人数由实际输入决定)参加期末考试,最多不超过6门(具体门数由实际输入决定).学生成绩管理系统是一个非常实用的程序,如果能够提前学习字符文件读写操作,把用户输入的数据存盘为字 ...
- 对某班学生成绩排序。从键盘依次输入某班学生的姓名和成绩(一个班级人数最多不超过50人)并保存,然后分别按学生成绩由高到低顺序输出学生姓名和成绩,成绩相同时,则按输入次序排序。
[问题描述] 对某班学生成绩排序.从键盘依次输入某班学生的姓名和成绩(一个班级人数最多不超过50人)并保存,然后分别按学生成绩由高到低顺序输出学生姓名和成绩,成绩相同时,则按输入次序排序. [输入形式 ...
- [C语言]统计成绩问题:输入某班学生某门课的成绩(最多不超过40人,具体人数由用户键盘输入),用函数编程统计不及格人数。
输入 输入包含两行: 第一行是一个整数n,表示班级人数. 第二行是n个整数,表示n个学生的成绩,相邻两项之间用一个空格隔开. 输出 输出不及格人数. 输入示例 3 70 90 58 ...
- [C语言]成绩与平均分问题:编写函数ReadScore()和Average(),输入某班学生某门课的成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩高于平均分的学生人数。
输入 输入若干个整数,相邻两项之间用一个空格隔开. 输出 输出成绩高于平均分的学生人数. 输入示例 70 90 58 -5 输出示例 1 数据范围 输入和输出均为int范围的整数 #include & ...
- 8.4 输入某班学生某门课的成绩,(最多不超过40人,具体人数由用户键盘输入),用函数编程统计不及格人数
#include<stdio.h> main() { int n,a[40],i,count=0; printf("请输入学生人数:"); scanf("%d ...
- 通过WiFi对STC单片机程序下载和调试
简 介: 设计了基于WiFi-UART的STC单片机下载调试模块,这样便于对嵌入式系统进行远程调试开发,特别是在一些具有移动功能的平台,强电平台以及需要实时监视和修改程序的应用场合. 关键词: STC ...
最新文章
- jvm性能调优实战 -57数据日志分析系统的OOM问题排查
- Mysql字段数据类型:char与varchar的区别
- python 反射和动态加载_Python的反射
- mysql统计每周每个学校新增学生数量_深入学习之mysql(四)聚合函数
- 基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码
- 49.Kth Largest Element in an Array
- Shell_Shell调用SQLPlus简介(案例)
- jQuery动画实现下拉菜单二级联动
- (23)Linux下Clion中搭建opencv环境
- SQL Server 中死锁产生的原因及解决办法
- 群晖如何建php网站_群晖nas使用教程31:搭建个人网站ZBLOG
- 分享CFA一级考试干货
- matlab期货,Matlab在股指期货中的应用
- 九型人格Enneagram
- 年终考核:对你的上司,你是如何评价的?
- PTA 单链表(流浪狗收养所)
- 群晖硬盘扩容 逃课方法
- 服务器:SATA、PATA及IDE的比较
- hue源码编译,替换cloudera manage hue,解决hue滚动条bug问题
- 大数据ui设计师_为什么设计师应该使用真实数据