第九次上机报告
来源:互联网 发布:windows.old还原win10 编辑:程序博客网 时间:2024/06/04 23:51
任务1:
某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组作函数参数编程实现如下学生成绩管理:
(1)录入每个学生的学号和考试成绩;
(2)计算课程的总分和平均分;
(3)按成绩由高到低排出名次表;
(4)按学号由小到大排出成绩表;
(5)按学号查询学生排名及其考试成绩;
(6)按优秀(90~100)、良好(70~89)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的人数及其所占的百分比;
(7)输出每个学生的学号、考试成绩,课程总分和平均分。
我的程序:
#include<stdio.h> #define N 30 int main() { int n; long number[N]; float score[N]; void input(long number[],float score[],int n); void ave(float score[],int n); void list(long number[],float score[],int n); void search(long number[],float score[],int n); void rate(float score[],int n); printf("输入学生人数:\n"); scanf("%d",&n); input(number,score,n); ave(score,n); list(number,score,n); search(number,score,n); rate(score,n); return 0; } void input(long number[],float score[],int n) { int i; printf("请输入学号和成绩:\n"); for(i=0;i<n;i++) { scanf("%ld,%f",&number[i],&score[i]); } } void ave(float score[],int n) { int i; float sum=0; for(i=0;i<n;i++) { sum=sum+score[i]; } printf("总分:%f\n",sum); printf("平均分:%.1f\n",sum/n); } void list(long number[],float score[],int n) { int i,j; float temp; long m; printf("成绩表:\n"); for(i=1;i<n;i++) for(j=0;j<n-i;j++) if(number[j]>number[j+1]) { m=number[j]; temp=score[j]; number[j]=number[j+1]; score[j]=score[j+1]; number[j+1]=m; score[j+1]=temp; } for(i=0;i<n;i++) printf("%ld, %.0f\n",number[i],score[i]); printf("名次表:\n"); for(i=1;i<n;i++) for(j=0;j<n-i;j++) if(score[j]>score[j+1]) { m=score[j]; temp=number[j]; score[j]=score[j+1]; number[j]=number[j+1]; score[j+1]=m; number[j+1]=temp; } for(i=n-1;i>=0;i--) printf("%ld, %.0f\n",number[i],score[i]); } void search(long number[],float score[],int n) { int i,j,ln=0; float temp; long m,sn; for(i=1;i<n;i++) for(j=0;j<n-i;j++) if(score[j]<score[j+1]) { temp=score[j]; m=number[j]; score[j]=score[j+1]; number[j]=number[j+1]; score[j+1]=temp; number[j+1]=m; } printf("请输入您想查询学生学号:\n"); scanf("%ld",&sn); for(i=0;i<n;i++) { ++ln; if(number[i]==sn) printf("学号 %ld 名次 %d,其考试成绩 %.0f\n",sn,ln,score[i]); } } void rate(float score[],int n) { int a=0,b=0,c=0,d=0,i; float r1,r2,r3,r4; for(i=0;i<n;i++) { switch((int)score[i]/10) { case 10: case 9: a=a+1; break; case 8:case 7: b=b+1 ;break; case 6: c=c+1; break; default: d=d+1; break; } } r1=(100*a*1.0)/n; r2=(100*b*1.0)/n; r3=(100*c*1.0)/n; r4=(100*d*1.0)/n; printf("优秀\t良好\t及格\t不及格\n"); printf("%d\t%d\t%d\t%d\n",a,b,c,d); printf("%.2f%%\t%.2f%%\t%.2f%%\t%.2f%%\n",r1,r2,r3,r4); }截图:
----------------------分割线----------------------
任务2:
从键盘输入5个整数存入一维数组中,输出最大的数,再按反序输出(要求用指针访问数组元素)
我的程序:
#include<stdio.h> void main() { int a[5],max,i; for(i=0;i<=4;i++) scanf("%d",a+i); max=*(a+0); for(i=1;i<=4;i++) if(*(a+i)>max) max=*(a+i); printf("max=%d\n",max); for(i=4;i>=0;i--) { printf("%d ",*(a+i)); } }截图:
- 第九次上机报告
- 第九次上机报告
- 第九次上机报告
- 第九次上机报告
- 第九次上机报告
- 第九次上机实验报告
- 第九次实验上机报告
- 第九次C程序上机报告
- 第九次c语言上机实验报告
- 第九次上机实验
- 第九次上机实验
- 第九次上机实验
- 第九次上机实验
- 第九次上机实验
- 第九次上机作业
- 第九次上机实验
- 第九次上机实验
- 第九次上机实验
- Xoreax IncrediBuild 4.60
- SQL树形数据的一种解决方法
- Oracle命令--alter 操作
- IOS成长之路-使用系统默认声音、震动
- Oracle命令--update操作
- 第九次上机报告
- XFire WebService 服务
- 源于频率的困惑——GSM空中接口物理层的设计
- PGA统计信息相关
- ORA-02055: distributed update operation failed; rollback required
- 第九次实验任务
- Oracle命令--检查oracle字符
- 用于调试时显示一个信息对话框
- oracle分页查询数据重复问题的解决