9次作业
来源:互联网 发布:越南viettel 网络类型 编辑:程序博客网 时间:2024/05/06 13:02
任务1:
某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组作函数参数编程实现如下学生成绩管理:
(1) 录入每个学生的学号和考试成绩;
(2) 计算课程的总分和平均分;
(3) 按成绩由高到低排出名次表;
(4) 按学号由小到大排出成绩表;
(5) 按学号查询学生排名及其考试成绩;
(6) 按优秀(90~100)、良好(70~89)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的人数及其所占的百分比;
(7) 输出每个学生的学号、考试成绩,课程总分和平均分。
某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组作函数参数编程实现如下学生成绩管理:
(1) 录入每个学生的学号和考试成绩;
(2) 计算课程的总分和平均分;
(3) 按成绩由高到低排出名次表;
(4) 按学号由小到大排出成绩表;
(5) 按学号查询学生排名及其考试成绩;
(6) 按优秀(90~100)、良好(70~89)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的人数及其所占的百分比;
(7) 输出每个学生的学号、考试成绩,课程总分和平均分。
#include <stdio.h>#define maxnum 30int sum(int stuScore[maxnum],int num);void sortByScore(int stuScore[maxnum],int num,int stuID[maxnum]);void sortByID(int stuScore[maxnum],int num,int stuID[maxnum]);void search(int stuScore[maxnum],int num,int stuID[maxnum],int stuid);void main(){//录入每个学生的学号和考试成绩int stuID[30],stuScore[30],num,i,stuid;printf("请输入学生数量:\n");scanf_s("%d",&num);printf("请输入学号和分数:\n");for(i=0;i<num;i++){scanf_s("%d,%d",&stuID[i],&stuScore[i]);}//计算课程的总分和平均分printf("总分是:%d\n",sum(stuScore,num));printf("平均分是:%d\n",sum(stuScore,num)/num);//按成绩由高到低排出名次表printf("成绩名次表:\n");sortByScore(stuScore,num,stuID);for(i=0;i<num;i++){printf("%d\t%d\n",stuID[i],stuScore[i]);}//按学号由小到大排出成绩表printf("学号名次表:\n");sortByID(stuScore,num,stuID);//按学号查询学生排名及其考试成绩sortByScore(stuScore,num,stuID);//再次初始化学生按成绩排名,方可知道他的排名printf("请输入你想查询的学生学号:\n");scanf_s("%d",&stuid);search(stuScore,num,stuID,stuid);//按优秀(90~100)、良好(70~89)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的人数及其所占的百分比printf("优秀\t良好\t及格\t不及格\n");float goodnum=0.0,normalnum=0.0,passnum=0.0,badnum=0.0;for(i=0;i<num;i++){switch(stuScore[i]/10){case 9:case 10:goodnum++;break;case 7:case 8:normalnum++;break;case 6:passnum++;break;default:badnum++;break;}}printf("%.0f\t%.0f\t%.0f\t%.0f\n",goodnum,normalnum,passnum,badnum);printf("%.2f%%\t%.2f%%\t%.2f%%\t%.2f%%\n",goodnum/num*100,normalnum/num*100,passnum/num*100,badnum/num*100);//输出每个学生的学号、考试成绩,课程总分和平均分printf("学号\t考试成绩\n");for(i=0;i<num;i++){printf("%d\t%d\n",stuID[i],stuScore[i]);}printf("课程总分\t平均分\n");printf("%d\t\t%d\n",sum(stuScore,num),sum(stuScore,num)/num);}int sum(int stuScore[maxnum],int num)//求总成绩{int i,sum=0;for(i=0;i<num;i++){sum+=stuScore[i];}return sum;}void sortByScore(int stuScore[maxnum],int num,int stuID[maxnum])//冒泡排序:按成绩排序{int temp1,temp2,i,j;for(i=0;i<num;i++){for(j=0;j<num-1;j++){if(stuScore[j]<stuScore[j+1]){//学号交换temp1=stuID[j];stuID[j]=stuID[j+1];stuID[j+1]=temp1;//成绩交换temp2=stuScore[j];stuScore[j]=stuScore[j+1];stuScore[j+1]=temp2;}}}}void sortByID(int stuScore[maxnum],int num,int stuID[maxnum])//冒泡排序:按学号排序{int temp1,temp2,i,j;for(i=0;i<num;i++){for(j=0;j<num-1;j++){if(stuID[j]>stuID[j+1]){//学号交换temp1=stuID[j];stuID[j]=stuID[j+1];stuID[j+1]=temp1;//成绩交换temp2=stuScore[j];stuScore[j]=stuScore[j+1];stuScore[j+1]=temp2;}}}for(i=0;i<num;i++){printf("%d\t%d\n",stuID[i],stuScore[i]);}}void search(int stuScore[maxnum],int num,int stuID[maxnum],int stuid)//按学号查询学生排名{for(int i=0;i<num;i++){if(stuid==stuID[i]){printf("学号:%d 名次%d ,其考试成绩:%d\n",stuID[i],i+1,stuScore[i]);}}}
----------------------分割线----------------------
任务2:
从键盘输入5个整数存入一维数组中,输出最大的数,再按反序输出(要求用指针访问数组元素)
- #include<stdio.h>
- #define num 5
- void main()
- {
- int i,*p,max=0;
- int number[num];
- printf("请输入五个数:\n");
- for(i=0;i<num;i++)
- {
- scanf("%d",&number[i]);
- }
- for(p=number;p<number+num;p++)
- {
- if(max>*p)
- {
- max=max;
- }
- max=*p;
- }
- printf("这五个数中的最大数是:%d\n",max);
- printf("这五个数的逆序是:\n");
- for(p=number+num-1;p>=number;p--)
- {
- printf("%d\n",*p);
- }
- }
#include<stdio.h>#define num 5void main(){int i,*p,max=0;int number[num];printf("请输入五个数:\n");for(i=0;i<num;i++){scanf("%d",&number[i]);}for(p=number;p<number+num;p++){if(max>*p){max=max;}max=*p;}printf("这五个数中的最大数是:%d\n",max);printf("这五个数的逆序是:\n");for(p=number+num-1;p>=number;p--){printf("%d\n",*p);}}
- 9次作业
- 第9次作业
- 关于第9次作业
- 第9次课堂作业
- 第四次作业 作业一
- 第四次作业 作业2
- 第四次作业 作业3
- 第四次作业 作业5
- 第四次作业 作业六
- 第四次作业 作业7
- 第四次作业
- 第四次作业
- 第四次作业
- 第四次作业
- 第六次作业
- 第四次作业
- 第四次作业
- 第四次作业
- $.ajax()常用参数的设置及其意义
- 如何优化MySQL insert性能
- c++类型转换String^,int,string,char*,时间格式字符串
- LInux Centos 支持NTFS文件系统加载的方法
- VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射
- 9次作业
- 封包学习笔记
- eclipse在线安装SVN插件以及使用
- struts2几种进行范围设值
- 判断指定的进程或程序是否存在方法
- 第九堂实验任务
- 关于集合中迭代器的改写仿写小记
- Binary Search Tree (BST) Implementation C++
- EXT学习经验分享:深刻理解EXT与服务器端的交互