




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告四课程C语言程序设计实验工程数组程序设计成绩专业班级学号批阅日期姓名实验日期指导教师2.1实验学时:4学时2.2实验目的1.掌握一维数组、二维数组的概念及元素的各种表示方法;2.正确掌握数组输入输出等的根本操作;3.掌握函数访问数组的方法;4.字符串的处理方法;5.掌握数组中的一些常用算法,并能解决实际问题。2.3必做实验【题目4-1】运用所学数组知识实现学生成绩的录入、评估、统计、排序及输出,要求如下:〔1〕从键盘输入6个同学计算机课程期末考试成绩存放在数组中算法分析:1、定义一个能够存放6个整型数据的数组intscore[6];2、使用循环结构为数组元素赋值3、编写循环体,注意数据输入格式〔2〕统计出平均分、最高分,以及统计超过平均分的人数算法分析:1、分析编程所需定义的变量,并未变量赋初值:总分intsum=0,平均分intave=0,最高分intmax=0,以及超过平均分人数的变量intcount=02、使用循环结构访问数组元素:score[0]~score[5]3、在访问数组元素的过程中,完成总分、最高分的统计,在访问完所有数组数据后,计算平均分4、再次访问数组,参照计算所得平均成绩统计超过平均分的人数5、输出结果〔3〕对学生成绩进行从高到低的排序〔冒泡法〕,并把排序后的成绩输出。算法分析:冒泡法实现n个数据从小到大排序,结合算法对学生成绩进行从高到低的排序输出排序结果流程框图:确定内部循环次数确定外部循环次数判定数据是否需要交换确定内部循环次数确定外部循环次数判定数据是否需要交换【题目4-2】定义一个N行N列的二维整型数组,使数组左下三角元素中的值乘以n。例如:假设n的值为3,a数组中的值为那么返回主程序后a数组中的值为算法分析:1、定义N行N列的二维数组,并手动为数组元素赋值 注意:注意数组维数不能为变量,但可以用宏定义的方式来进行数组维数的定义,例如:在头文件前进行宏定义#defineN3,程序中定义二维数组intnum[N][N];2、选择二维数组中的左下三角元素,并改变三角元素的值3、以N行N列的形式输出二维数组,要求每输出N个数据,输出一个回车换行符延伸:结合所学函数的知识,把改变左下三角元素值的功能用函数实现。【题目4-3】掌握字符串操作,完成以下功能〔1〕输入一串字符s,把s所指字符串中的内容逆置。例如:字符串中原有的字符串为:abcdefg,那么执行后,串s中的内容为:gfedcba。算法分析:键盘输入字符串字符串输入可使用多种方法,例如:gets〔〕函数,或者scanf〔〞%s〞,s〕;等;逆置字符串内容字符串内容逆置也就是首字符和尾字符交换,交换次数取决于字符串的长度;长度为n的字符串需要交换n/2次便可完成逆置;获得字符串长度可使用strlen()函数;输出逆置后字符串可使用puts()函数,或者printf(“%s〞,s);〔2〕将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。例如,当s所指字符串中的内容为:"ABCDEFGHIJK",在t所指数组中的内容应是:"BDFHJ"。算法分析:输入字符串定义存放新字符串的变量t,字符串长度至少为s长度的一半;把字符串s对应位置上的字符赋值给变量t运用循环结构为字符串t赋值,考虑t数组的下标应从0开始,到s长度的一半〔可通过调用strlen函数获取字符串s的长度〕;输出字符串t延伸:把以上两个功能写成函数,在主函数中调用函数。2.5实验结果【实验4-1】代码及运行结果:〔1〕#include<stdio.h>main(){ inti,score[6]; intsum=0,ave=0,max=0,count=0; for(i=0;i<=5;i++) { printf("请输入第%d个学生的成绩:",score[6]); scanf("%d",&score[i]); } for(i=0;i<=5;i++) { sum+=score[i]; if(max<score[i]) max=score[i]; } ave=sum/6; printf("最高分是%d,平均分是%d",max,ave); for(i=0;i<=5;i++) { if(score[i]>=ave) count++; } printf("超过平均分共%d人",count);}【实验4-2】代码及运行结果:#include<stdio.h>#defineN3voidchange(inta[N][N]){ inti,j; for(i=0;i<N;i++) { for(j=0;j<=i;j++) a[i][j]*=3; }}main(){ intnum[N][N];inti,j; for(i=0;i<N;i++) { for(j=0;j<N;j++) scanf("%d",&num[i][j]); } for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%d\t",num[i][j]); printf("\n"); } printf("\n\n");change(num);for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%d\t",num[i][j]); printf("\n"); }}【实验4-3】代码及运行结果:〔1〕#include<stdio.h>#include<string.h>#defineN80voidmain(){charstr[N]; inti,n;chartemp; gets(str); n=strlen(str);for(i=0;i<=n/2;i++) { temp=str[i]; str[i]=str[n-1-i]; str[n-1-i]=temp; } printf("Theresultis%s\n",str);}/*改为函数后为*/#include<stdio.h>#include<string.h>#defineN80voidfun(charstr[]){ inti,n=strlen(str); chartemp; for(i=0;i<=n/2;i++) { temp=str[i]; str[i]=str[n-1-i]; str[n-1-i]=temp; }}voidmain(){ charstr[N]; gets(str); fun(str); printf("Theresultis%s",str);}〔2〕#include<stdio.h>#include<string.h>#define N100voidmain(){ charstr[N],t[100]; inti,n; gets(str); n=strlen(str); for(i=0;i<=n/2;i++) { t[i]=str[i*2+1]; } t[i]=0; puts(t);}/*改用函数后为*/#include<stdio.h>#include<string.h>#define N100voidfu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网与心理健康
- 心理健康服务中心部长竞选规划
- 2025年广西从业资格考试
- 文明离校教育主题班会
- 防交通事故教育
- 故障诊断类答辩
- 新生儿蓝光护理指南
- 胸腺囊肿CT诊断
- 培训课件主持词
- 糖尿病并发症全面解析
- 2025年陕西行政执法资格考试备考模拟题及答案(题型)
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读课件
- 行政事业单位内部控制培训课件
- 经历是流经裙边的水
- 非外资独资或外资控股企业书面声明
- 降低手术患者术中低体温发生率
- 疼痛诊疗学课程教学大纲
- 2023年保险知识竞赛题库
- YY/T 1846-2022内窥镜手术器械重复性使用腹部冲吸器
- GA 1016-2012枪支(弹药)库室风险等级划分与安全防范要求
- 尹真人东华正脉皇极阖辟证道仙经
评论
0/150
提交评论