试验10指针2修复的_第1页
试验10指针2修复的_第2页
试验10指针2修复的_第3页
试验10指针2修复的_第4页
试验10指针2修复的_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计实验报告实验时间:6月7号实验班级:计算机双学位1501实验报告总份(片)数:1 份(片)实验教师:饶东宁计算机 学院 工一 实验室广东工业大学C语言程序设计实验报告实验题目: 实验10实验时间:6月7号实验班级:双学位1501实验人学号:3213010359实验人姓名:梁雪卿实验教师:饶东宁计算机 学院 工一实验室广东工业大学实验10指针21实验目的(1)进一步掌握指针的应用(2)能正确使用数组的指针和指向数组的指针变量(3)能正确使用字符串的指针和指向字符串的指针变量(4) 了解指向指针的指针的用法2实验内容根据题目要求,编写程序(要求用指针处理),运行程序,分析结果,并进行

2、必要的讨论分析。(1)有n个人围成一圈,顺序排号。从第一个人开始报数(从 1到 3报数),凡报到3的人退出圈子,问最后留下的是原来的第几 号的人。程序清单:#include int main()int i,k,m,n,num50,*p;scanf(n=%d,&n);p=num;for(i=0;in;i+)*(p+i)=i+1;i=0;k=0;m=0;while(mn-1)if(*(p+1)!=0) k+;if(k=3)*(P+i)=O;k=0;m+; i+;if(i=n) i=0;)while(*p=0) p+;printf(The last one is NO.%dn,*p);return

3、0;运行结果:分析与思考:以1到n为序给每个人编号,i为每次循环时计数变量,k为按1,2,3报数时的计数变量,m为退出人数,当退出人数比 n-1少时执行循环体,对推村恩编号为0,报数到尾i恢复为0,循 环继续。(2)将一个5*5的矩阵(二维数组)中最大元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小 到大存放),写一函数实现之。用main函数调用。算法说明:定义 a55,*p,I,jfor i=0 to i=4for j=0 to j=4输入 aijp=&a00调用函数change(p)for=0 to i=4for j=0 to j=4输出 aijchange(in

4、t *p)程序清单:#include int main()(void change(int *p);int a55,i,j,*q;for(i=0;i5;i+)for(j=0;j5;j+) scanf(%d”,&aij);q=&a;change(q);for(i=0;i5;i+)(for(j=0;j5;j+)printf(%d ,aij);printf(n);)return 0;)void change(int *p)(int i,j,temp;int *pmax,*pmin;pmax=p;pmin=p;for(i=0;i5;i+)(for(j=0;j5;j+)(if(*pmax*(p+5*i+

5、j) pmin=p+i*5+j;)temp=*(p+12);*(p+12)=*pmax;*pmax=temp;temp=*p;*p=*pmin;*pmin=temp;pmin=p+1;for(i=0;i5;i+)forQ=0;j*(p+5*i+j) pmin=p+5*i+j;temp=*pmin;*pmin=*(p+4);*(p+4)=temp;pmin=p+1;for(i=0;i5;i+)forQ=0;j*(p+5*i+j) pmin=p+5*i+j;temp=*pmin;*pmin=*(p+20);*(p+20 尸 temp;pmin=p+1;for(i=0;i5;i+)(for(j=0;

6、j*(p+5*i+j) pmin=p+5*i+j;temp=*pmin;*pmin=*(p+24);*(p+24)=temp;运行结果:分析与思考:change函数实现元素值交换。找出最大最小之,最大值与中心 元素呼唤,最小值与左上角的元素互换。找出全部元素中的次 小值,第三小值,第四小值,分别与剩下的三个角互换。元素 地址均以元素做单位的地址。(3)有一个班4个学生,5门课程。1,求第一门课程的平均分。2,找出有两门以上课程不及格的学生,输出他们的学号和全 部课程成绩及平军成绩。3,找出平均成绩在90分以上或全部课程成绩在85分以上的 学生。分别编3个函数实现以上3个要求。算法说明:定义 s

7、core45,aver4,*pscore,*paver,course510,(*pcourse)10pcourse=course for i=0 to i=4输入 courseifor i=0 to i=4输出 courseipscore=&score00pnum=&numfor i=0 to i=3输入pnum+i for j=0 to j=4输出 pscore+5*i+jpaver &aver0_调用 avsco(pscore,paver)调用 avcour1(pcourse,pscore)调用 fali2(pcourse,pnum,pscore,paver)调用 good(pcourse

8、,pnum,pscore,paver)avsco定义 I,j,sum,averagefor i=0 to i=3sum=0.0for j=0 to j=4sum=sum+(*(pscore+5*i+j)average=sum/5*(paver+i)=averageavcourl定义 I,sum,average1sum=0.0for i=0 to i=3sum=sum+(*(pscore+5*i) average1= sum/4 输出 *pcourse,average1fali2good定义 I,j,k,nfor i=0 to i=4输出 courseifor i=0 to i=3n=ofor

9、j=0 to j=4U*l4pscore+5*i+j)85.0-Jn+Jn=5|(averi=90)_输出numifor k=0 to k=4输出 * ( pscore+5*i+k)输出 averi程序清单:#include int main()void avsco(float *,float *);num,floatnum4,floatvoid avcour1(char (*)10,float *);void fali2(char course510,int*pscore,float aver4);void good(char course510,int*pscore,float aver4

10、);int i,j,*pnum,num4;float score45,aver4,*pscore,*paver;char course510,(*pcourse)10;printf(input course:n); pcourse=course;for(i=0;i5;i+)scanf(%s,coursei);printf(input NO. and scores:n);printf(NO.);for(i=0;i5;i+) printf(,%s,coursei);printf(n);pscore=&score00;pnum=&num0;for(i=0;i4;i+) scanf(%d,pnum+i

11、); for(j=0;j5;j+) scanf(%f,pscore+5*i+j); paver=&aver0;printf(nn);avsco(pscore,paver);avcour1(pcourse,pscore);printf(nn);fali2(pcourse,pnum,pscore,paver);printf(nn);good(pcourse,pnum,pscore,paver);return 0;)void avsco(float *pscore,float *paver)(int i,j;float sum,average;for(i=0;i4;i+)sum=0.0;for(j=

12、0;j5;j+)sum=sum+(*(pscore+5*i+j);average=sum/5;*(paver+i)=average;)void avcour1(char (*pcourse)10,float *pscore)int i;float sum,average1;sum=0.0;for(i=0;i4;i+)sum=sum+(*(pscore+5*i);average1=sum/4;printf(course1:%saveragescore:%7.2fn,*pcourse,average1);void fali2(char course510,int num,float*pscore,

13、float aver4)int i,j,k,label;printf( =Student who is fail in two course= n);printf(NO.);for(i=0;i5;i+)printf(%11s,coursei);printf( averagen);for(i=0;i4;i+)label=0;for(j=0;j5;j+)if(*(pscore+5*i+j)=2)printf(%d,numi);for(k=0;k5;k+)printf(%11.2f,*(pscore+5*i+k);printf(%11.2fn,averi);void good(char course

14、510,int num4,float*pscore,float aver4)int i,j,k,n;printf( =Students whose scoreis good= n);printf(NO.);for(i=0;i5;i+)printf(%11s,coursei);printf( averagen);for(i=0;i4;i+)n=0;for(j=0;j85.0) n+;if(n=5)|(averi=90)printf(%d,numi);for(k=0;k0)_STtemp=*(p+i) *(p+i)=*(p+j) *(p+j)=temp程序清单:#include #include #define LINEMAX 20#define N 5int main()(void sort(char *p,int x);int i;char *p;char *pstrN;char strNLINEMAX;printf( 输入5个字符串:);for(i=0;iN;i+)pstri=stri;for(i=0;iN;i+)scanf(%s,pstri);p=pstr;sort(p,N);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论