c语言程序设计 实验五数组,c语言实验五实验报告数组

41528d3028836879cd698677c3999917.gifc语言实验五实验报告数组

一、 实验项目名称数组二、 实验目的1.掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。 2.掌握字符数组与字符串的使用方法。理解字符数组与其它数组的区别、理解字符串及其特点。掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。 3.掌握与数组相关的算法,包括排序算法和查找算法等。 三、 实验内容进行有关数组的程序设计。具体内容:1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。 要求:(1)数组为整型数组(10 个元素) 。(2)使用 scanf 函数实现数组元素的输入。在输入前给出必要的提示。(3)输出时给出必要的说明,首先输出原始的 10 个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。 (4)如果现改为 20 个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。如果需要数组元素不断改变,应怎样修改程序? 2.编程实现:在给定的字符串中查找满足条件的第一个字符。要求:(1)字符串采用初始化的方式处理。(2)通过 scanf 函数读入一个任意字符。(3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。如果不存在该字符,则要给出相应的信息。3.编程实现:首先任意输入一个大于 2 且小于 10 的整数 n,再输入一个由 n 决定的二维整型数组(n n) ,形成 n n 阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义) 。 例如:原始数据: n=4 结果数据:1 2 3 4 8 11 14 163 5 9 10 3 5 9 10 8 11 14 16 1 2 3 4 15 2 7 6 15 2 7 6 要求: (1)本题中所涉及到的循环都采用 for 语句。 (2)在输入/输出时进行必要的说明。(3)对输入的 2~10 之间的整数(例如 4)以 n=4 的格式输出。(4)输入一个 n n 矩阵(假定最大值与最小值不在同一行上) ,输出原始矩阵数据(按上述矩阵形式) 。(5)查找最大值与最小值,将矩阵中最大元素所在的行和最小元素所在的行对调,输出对调后的矩阵数据。 (6)修改程序,对最大值与最小值可能出现在一行上的情况做出说明。 (7)对 n 为 3,4,5 时,输入数组元素是要注意哪些问题?执行程序,检查程序的正确性。4.编程实现“折半查找”的过程。折半查找的处理过程是:在一个数据已排好序的数组中,首先比较关键字与数组中间的元素,如果两者相等,则查找结束;如果前者比后者小,则要查找的数据必然在数组的前半部,此后只需在数组的前半部中继续折半查找;如果前者的数值比后者大,则要查找的数据必然在数组的后半部,此后只需在数组的后半部继续进行折半查找。 要求: (1)设定一个数组存放 20 个数据,用赋初值的方法在程序中给出(假设这些数据已排序) 。 (2)用 scanf 函数输入一个要找的数。 (3)对查找的结果给出相应的说明,如果找到该数,则给出该数是数组中第几个元素。如果该数不在数组中,则输出“无此数”信息。 (4)任意输入一些数据,检查程序的正确性。 (5)修改程序,设定输入的数据是无序的,采用 scanf 函数的形式输入,首先要对这些无序的数据进行排序,然后再采用“折半查找” 。最后通过测试几组差别较大的数据检查程序的正确性。 (6)修改程序,改为函数调用的形式。编写一个选择法排序函数,对无序数据进行排序;编写一个查找函数对已排好序的数据进行查找。在主函数中输入数据(无序) ,调用上述函数,输出结果。5.编程实现:三个学生、五门课程的成绩分别存放在 4×6 矩阵的前 3×5 列,计算出每个学生的平均成绩存放在该数组的最后一列的对应行上。计算单科的成绩总和存放在最后一行的对应列上,并输出单科成绩的平均分。输入/输出格式举例如下: (输入成绩): 65 87 68 56 78 83 94 67 85 91 71 75 69 84 89 Output(输出结果) : 65 87 68 56 78 70.5 83 94 67 85 91 84.0 71 75 69 84 89 77.5 219.0 256.0 204.0 258.0 232.0 0 average: 73.0 85.3 68.0 86.0 77.3 要求: (1)数组类型为实型,输入成绩由 scanf 函数实现。(2)输出已输入的原始成绩数据(3×5) 。 (3)计算每个学生的平均成绩以及单科的成绩总和并按要求填入到数组中,输出填入结果后的数组(4×6) 。(4)j 计算单科平均成绩后输出。 6.编写函数 catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr()用于统计一个字符串的长度。编写函数 cmpStr()用于判断两个字符串的大小。 要求: (1)不允许使用字符处理库函数。(2)在主函数以初始化的方式输入两个字符串 str1、str2。调用函数 lenStr()计算字符串的长度。 (3)调用函数 cmpStr()判断两个字符串的大小,如果 str1 大于等于 str2,调用函数catStr()进行两个字符串的连接,将 str1 连接在 str2 后,否则,将 str2 连接在 str1 后,调用函数 lenStr()统计连接后的字符串长度。 (4)在主函数中输出两个原始字符串和各自的长度以及处理后字符串及其长度。四、 实验步骤在编程软件中写如以下代码:一、#include void main(){int a[10],i,j,k,max,min;printf(“请输入 10 个数:\n“);for (i=0;i=max)max=a[i];if (a[i]#include void main(){int j,n;char i;char c[]={“I am a student“};/*初始化字符串*/printf(“给定字符串为:%s\n 请输入要查找的字符:“,c);scanf(“%c“,n=strlen(c);/*得到函数给定字符串的长度*/for (j=0;j=n)printf(“字符串中不存在满足条件的字符!“);}三、#include void main(){int n,j,k,z,x,max,min,a[10][10];printf(“请输入一个 2 到 10 之间的数:“);scanf(“%d“,printf(“请输入一个 n*n 数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值