好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

东南大学机械学院C++第二学期上机答案.docx

94页
  • 卖家[上传人]:汽***
  • 文档编号:409494378
  • 上传时间:2024-02-19
  • 文档格式:DOCX
  • 文档大小:107.01KB
  • / 94 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第二周上机题1、以下语句描述了包含数学成绩的学生信息结构体及其数组a: struct student{ char name[20]; float math; };student a[ 10] = {{"张三",90},{"李四",85},{"王五",73}};int count=3; //数组中包含的学生数 编写两个函数分别实现在a数组中添加和删除学生信息 要求:1)原数组已按数学成绩排序(降序),添加和删除学生信息后数组应仍为降序; 2)以下数据用于添加:{"赵二", 96), {"钱六165}, {"孙七",80) 3)注意:添加,删除后count数据要相应变化include #include struct student ( char name [20]; float math; 1; int count=3; void add(student a[10]); void dele(student a[10]); void print(student a[]); void main() ( student a[10] = {{“张三”, 90},{“李四”,85},{“王五”,73}}; int n=0; do{ cout«n 学生信息处理系统 ”vvk 1 .删除”vvk 2 .增加”«^n 3-结束\n”«An请选择:n; cin»n; if(n==l) dele(a); else if(n==2) add(a); else coutvv”谢谢使用本系统!\n"; }while(n!=3);) void add(student a[10]) (student stu; int i=0,n=count; cout<< “请输入需增加的学生信息(姓名,成绩):cin»stu.name»stu.math;while(stu.mathi;n-) a[n]=a[n-l];a[i]=stu;count++;print(a);}void dele(student a[ 1 ()])(char name[20];int i=0,n=count;print(a);cout<<”请输入需删除学生的姓名:cin»name;while(strcmp(name,a|i].name)!=O && i=n) 8111«”查无此人!3”;else {for(;i

      要求:编写函数求两坐标点之间的距离include#includestruct point(double x,y,z;};double distance(point appoint b);void main( void)(point a,b;coutvv”请分别输入两个点的坐标(x,y,z): \nM;cin»a.x»a.y»a.z;cin»b.x»b.y»b.z;cout«*'a 点的坐标:,,«a.x«V«a,y«,,,«a.z«\n,;cout«nb 点的坐标:”

      函数sort完成对n名选手的得分按平均分从高到低排序测试数据与运行结果】测试数据:程序中给定的初始化测试数据运行结果:li: 94 97 98 96 100 99 97 97.40zhang: 96 97 98 98 100 97 96 97.20zhou: 95 100 99 96 97 96 97 97.00以下语句描述了青年歌手信息的结构体及其数组PERSON:struct{ char player_name[20];double score [7],a ver;}PERSON[3];#include#define N 3struct Player(char name[20];double score[7],aver;}PERSON[3];double delmaxmin(double a[7])(double aver=0,sum=0,max,min;max=min=a[0];fbr(int i=0;i<7;i++)(if(a[i]>max)max=a[i];if(a[i]=i+l;j-)if(p[j]. aver>p [j-1]. aver)(a=p[j];piji=pij-n;p[j-l]=a;)}void main( void)(int i,j;cout« ”请输入比赛选手的姓名和比赛成绩:"《endl;for(i=0;i<3;i++){cin»PERS ON|i|.name;for(j=0;j<7;j++)cin»PERSON[i].score[j];}for(i=0;i<3;i++)PERSON[i].aver=delmaxmin(PERSON[i].score);sort(PERSON);cout«"比赛成绩如下"vvendl;for(i=0;i<3;i++){cout«PERSON [i].name«\t';for(j=0;j<7;j++)cout«PERS ON [i].score |j ]«\t';cout«PERSON[i].aver«endl;))第二周上机二1、查找并输出同时出现在两个一维数组中的整数,每个一维数组中的元素均按升序排列, 并且每个数组中的元素没有看复值。

      函数int coincidence_count (int *a , int *b; int *c)按上述要求在a数组和b数组上查找,将找 到的数据保存到c所指向的的数组中a数组中的数据:1, 2, 4, 8, 10, 12, 13, 14, 16, 18b 数组中的数据:3, 4, 7, 8, 9, 10, 12, 13, 16, 19#include int coincidence_count(int *a,int *b,int *c){int i,j,count=0,*d=b;for(i=0;i

      主函数并通过屏幕输出结果(最大值, 最大值在数组中的位置,最小值,最小值在数组中的位置,)includevoid fbund(int *pa,int *pb)for(int i=l;i<10;i++) (if(pa[O]pb[i]) (pa[2]=pb[i];pa[3]=i+l;)})void main(void)(inti,a[10],b[4];coutvv”请输入10个整数An”;for(i=0;i<10;i++)cin»a[i];b[0]=b[2]=a[0J;found(b,a);coutvv”最大值为:“vvb[0]vv”,最大值在数组中的位置为:“ vvbUkvV;coutvv”最小值为:最小值在数组中的位置为:“ vvb⑶}3、25个人围成一个圈,从第1个人开始顺序报号(1,2,3……),凡报号为3和3的倍数者退 出圈子,找出最后留在圈子中的人原来的序号要求:函数void seek( int *a , int n, int *pn)按上述要求在a数组,找出最后留在圈子中的人原来的 序号并返回。

      主函数是:void main(){int n=3;int num;int a[25],*p=a;for(int i=0; i<25; i++) p[i]=i+l;seek( a,n ,&num);coutvv”最后留在圈子中的人原来的序号是:" v#define N 25void seek(int *a,int n,int *pn)int i,j=0,count=0;for(;count!=N-l;) (fbr(i=O;i

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.