




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
50866710088060508077080705noscore1score296score4score3P157_10假设有3个学生的全局信息,存放在二维数组s中,形成学生成绩表。S的每一行存储一位学生的有关信息,其中每行的第一列存放学生的学号。#defineN3ints[N][5]={{5,70,80,96,70},{7,80,50,60,80},{8,100,67,86,50}};从指定的成绩单中找指定学号的成绩表。函数返回找到的那位学生的成绩表(可以不包括学号)的指针。在主调函数中输出相关的数据.分析:程序的功能及操作如下:根据题意,可以设计函数int*score(int(*p)[5],intm,intno)用于寻找指定学号的学生,函数score比较每一行中的第一个元素(学号),如果与输入的学号匹配,返回该学生成绩表的指针,否则返回空指针。函数score参数介绍:形参p是指向数组的指针,它所指数组有5个int型元素,形参m是学生数;no是待找学生的学号。主函数按以下格式调用:p=score(s,N,num);其中,实参s为成绩单首行数组的指针,N为成绩单行数,即学生人数,num为某学生的学号,p为int型的指针,接收函数的返回值。int*score(int(*p)[5],intm,intno){int(*ap)[5];//ap与p同类型指针
for(ap=p;ap<p+m;ap++)if(**ap==no)return*ap+1;//返回找到的那位学生的成绩表的指针。
returnNULL;//找不到,返回空地址}voidmain(){int*p,i,num;
while(1){ printf("请输入要查找成绩的学生的学号:\n"); scanf("%d",&num);//输入学号
p=score(s,N,num); if(p==NULL){printf("学号%d不存在\n",num);return;} for(i=0;i<5;i++)
printf("%d\t",p[i]);//找到,输出该同学的信息
printf("\n");} }2.已知某个学生表,输出学生学号和成绩。根据题意,可以设计函数search(int(*p)[5],intm,intno)
用于寻找指定学号的学生,并输出该学生的各门课成绩,其中,形参p是指向数组的指针,它所指数组有5个int型元素,形参m是学生数;no是待找学生的学号。主函数按以下格式调用:search(s,N,n);
其中s为成绩单首行数组的指针,N为成绩单行数,即学生人数,n为某学生的学号。调用函数search,比较每一行中的第一个元素(学号),如果与输入的学号匹配,则输出其成绩,否则打印出错信息。2a.方案A:采用数组指针设计函数search(习题要求)voidsearch(int(*p)[5],intm,intno)/*数组指针的长度5不能省略*/{int(*ap)[5],/*ap与p为同类型指针*/*pp;//pp用于指向一位学生的信息数组中成分
for(ap=p;ap<p+m;ap++)//ap为行地址
if(**ap==no)//**ap为行中第0个元素的值(学号){printf("学号:%d\t成绩:",no);for(pp=*ap+1;pp<*ap+5;pp++)//*ap+1等价于&ap[i][1]printf("%4d\t",*pp);/*用pp遍历行中元素ap[i][j]*/printf("\n");return;}printf("学号%d不存在\n",no);}voidmain(){ int*p,i; search(s,N,7); search(s,N,5); search(s,N,2); search(s,N,8);}2b.方案B:采用二维可调数组设计函数searchvoidsearch(intp[][5],intm,intno){inti,j;for(i=0;i<m;i++)if(p[i][0]==no){printf("学号:%d\t成绩:",no); for(j=1;j<5;j++) printf("%4d\t",p[i][j]); printf("\n");return; }printf("学号%d不存在\n",no);}
/*p157_13函数指针.cpp函数指针变量应用示例 */#include<stdio.h>intadd(intx,inty)/*定义实现加法的函数add*/{returnx+y;}intsub(intx,inty)/*定义实现减法的函数sub*/{returnx-y;}intmul(intx,inty)/*定义实现乘法的函数mul*/{returnx*y;}intdiv(intx,inty)/*定义实现整除的函数div*/{returnx/y;}intexecute(intx,inty,int(*p)(int,int)){ /*函数指针p作为execute函数的参数*/ intn; n=(*p)(x,y);/*通过函数指针变量p调用函数*/returnn; }intmenu(void)/*显示菜单*/{intc;while(1){printf("1:计算两个整数的和.\n"); printf("2:计算两个整数的差.\n"); printf("3:计算两个整数的积.\n"); printf("4:计算两个整数的商.\n"); printf("0:或任意字符:quit!\n"); printf("Enteryourselect.\n"); if(scanf("%d",&c)!=1)break;/*输入非法字符,退出*/ if(c>=0&&c<5)returnc; printf("Error!tryagain.\n");}}voidmain(){ inta,b,c,result;int(*fpt[])(int,int)={add,sub,mul,div};//函数指针数组
charop[4]={'+','-','*','/'};printf("欢迎进入小学生数学运算系统,版本号v0.01\n");while(1){c=menu();if(c==0)break;/*结束程序执行*/ printf("pleaseinputaandb\n"); scanf("%d%d",&a,&b); /*switch(c) {case1:result=execute(a,b,add);break; case2:result=execute(a,b,sub);break; case3:result=execute(a,b,mul);break; case4:result=execute(a,b,div);break; }*/ result=execute(a,b,fpt[c-1]);//用函数的指针数组
printf("计算的结果为:%d%c%d=%d\n",a,op[c-1],b,result);}}//p157_16#include<stdio.h>#include<time.h>#include<stdlib.h>#defineN10intx[N];voidinput(int*p[],intn){inti; longnow; srand(time(&now)); for(i=0;i<n;i++) { x[i]=rand()/100;//输入<100的随机数
p[i]=&x[i];//赋数组x的地址到指针数组p }}voidoutput(int*p[],intn){inti;printf("输出输入序列\n");for(i=0;i<n;i++)printf("%d\t",*p[i]);printf("\n\n");}voidsort(int*p[],intn){inti,j,t;for(i=0;i<N-1;i++)for(j=N-1;j>i;j--) if(*p[j]<*p[j-1]){t=*p[j];*p[j]=*p[j-1];*p[j-1]=t;}//交换}voidmain(){int*p[N],i;input(p,N);output(p,N);sort(p,N);printf("输出排好的序列\n");for(i=0;i<N;i++) printf("%d\t",*p[i]);pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青海农牧科技职业学院《工程流体力学及通风》2023-2024学年第二学期期末试卷
- 哈尔滨信息工程学院《车辆工程力学》2023-2024学年第二学期期末试卷
- 武汉晴川学院《用户体验分析与交互设计》2023-2024学年第二学期期末试卷
- 成都大学《普通病毒学》2023-2024学年第二学期期末试卷
- 工业园区中的绿色建筑设计思路
- 工业互联网的架构与优化策略
- 工业互联网中的智能机房建设案例
- 工业产品设计流程与项目管理
- 工业互联网在供应链金融中的应用
- 嵌入式系统在自动控制中的应用
- 2025年天津市河西区中考二模数学试题(含部分答案)
- 2025 届九年级初三毕业典礼校长讲话:星河长明共赴新程
- 2025年伽师县(中小学、幼儿园)教师招聘考试模拟试题及答案
- 2024年安徽省初中学业水平考试生物试题含答案
- 2024年浙江省中考英语试题卷(含答案解析)
- 移动取消宽带委托书
- (完整word)a3标准规范试卷模板
- html5 web前端期末考试复习题
- 施工现场平面布置要求(完整已排版)
- 2022年碳酸钾生产项目可行性研究报告
- 软胶囊干燥除湿转笼用户需求URS
评论
0/150
提交评论