数组实验报告

本文介绍了PTA在线编程平台上的三个实验作业案例,包括矩阵运算、字符串统计与字符过滤等任务的设计思路、流程图绘制及代码实现过程。同时分享了在编程过程中遇到的问题及其解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、PTA实验作业

题目1:7-10 矩阵运算

1. 本题PTA提交列表

2. 设计思路(包括流程图)

定义N,i=0,j=0,sum=0,二维数组a[i][j]。通过循环限制i,j<n-1除去最后一行和最后一列的元素,通过判断i+j是否等于n-1除去副对角线的元素 ,所有剩余的元素相加即为题目所求。

流程图如下

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

前两次提交部分正确是因为漏看了题目要求除去副对角线上的元素,通过思考,第一次填写的限制条件是i+j!=n,仍然错误。经过思考,得出限制条件应该是i+j!=n-1。

题目2:7-20 输出GPLT

1. 本题PTA提交列表

2. 设计思路(包括流程图)

通过利用while循环+switch函数统计G,P,L,T所出现的次数。再利用一个while循环,按照GPLT的顺序输出,每输出一个字母就减去对应的字母出现的次数一次,最后通过判断GPLT的出现次数都为0的时候,退出循环,得出答案。

流程图如下

 3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

第一次部分正确是因为出现了运行时错误,通过扩大字符串ch长度,从ch[10000]换成ch[10010]解决问题。

题目3:7-30 A-B

1. 本题PTA提交列表

2. 设计思路(包括流程图)

题目要求的A-B换种说法就是输出A所有字符中除去B中所含的字符,所以我定义两个字符串,通过循环将ch1中的字符依次与B中的字符进行比较,若全不相同就输出,若有相同就进行下一字符的对比。以此类推。

流程图如下

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

同第二题一样出现运行时错误,扩大ch1,ch2解决问题。

二、同学代码结对互评

1.同学互评照片

我的代码如下                                

谢晔晖同学的代码

不同点1:输入字符串方法不同

我的方法是用gets函数直接将字符串输入,这样代码的简练度较高。而晔晖是利用循环,一个字符一个字符的输入。

不同点2:对GPLT个数的统计

我的方法使用switch函数统计,晔晖使用循环+if判断统计。代码简练程度没有太大区别,但我认为switch函数来统计个数更清晰点。

相同点1:输出方法类似。

我更加喜欢自己的代码风格。

三、截图本周题目集的PTA最后排名

四、本周学习总结

1.你学会了什么?

(1)学会了一维数组和二维数组的应用,并且能与子函数和指针结合运用。

(2)gets,puts,strcmp,strcpy,strlen,strcat字符串操作函数的应用,并且能写出函数原型。

gets(ch1)//输入字符串ch1

puts(ch2)//输出字符串ch1

strcmp(ch1,ch2)//字符串比较(不是比较字符串长度,而是逐个比较字符串ch1和ch2中的对应字符,知道对应字符不等或者比较到字符串尾,若相等返回值为0,若不相等返回值为不相等字符的差值)

strcpy(ch1,ch2)//把字符串ch2复制到ch1中

strcat(ch1,ch2)//把字符串ch2连接到ch1

strlen(ch1)//求字符串ch1的长度

(3)字符串的结束符'\0'(在用gets函数中,回车后自动在字符串尾生成\0')

2.本周的内容,你还不会什么?

长时间思考后仍然没有思路。

转载于:https://www.cnblogs.com/liangyuhang/p/8128603.html

实验名称:Java数组操作 实验目的:掌握Java数组的基本操作,包括数组的定义、初始化、遍历、排序和查找等。 实验环境:Java语言编译器 实验内容: 1. 数组的定义和初始化 Java数组是一种特殊的对象,它可以存储同一类型的多个元素。数组的定义需要指定数组类型和数组的大小,例如int[] arr = new int[10];表示定义了一个包含10个整数的数组数组还可以使用数组字面量进行初始化,例如int[] arr = {1, 2, 3};表示定义了一个包含三个整数的数组,并将它们初始化为1、2和3。 2. 数组的遍历 数组可以使用for循环进行遍历,例如: ``` for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } ``` 其中arr.length表示数组的大小,arr[i]表示数组中第i个元素。 3. 数组的排序 Java提供了Arrays类来对数组进行排序,例如Arrays.sort(arr)可以将数组arr按升序排序。也可以使用自定义的排序算法数组进行排序,例如冒泡排序、快速排序等。 4. 数组的查找 Java提供了Arrays类来对数组进行查找,例如Arrays.binarySearch(arr, key)可以在数组arr中查找关键字key,并返回它的索引。如果数组中不存在关键字key,则返回负数。 实验步骤: 1. 定义一个包含10个整数的数组,并使用数组字面量进行初始化。 2. 输出数组中的所有元素。 3. 将数组按升序排序,并输出排序后的结果。 4. 在数组中查找元素5,并输出它的索引。 实验结果: ``` int[] arr = {5, 2, 3, 7, 1, 9, 4, 6, 8, 0}; // 输出数组中的所有元素 for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(); // 将数组按升序排序 Arrays.sort(arr); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(); // 在数组中查找元素5 int index = Arrays.binarySearch(arr, 5); System.out.println("Index of 5: " + index); ``` 输出结果为: ``` 5 2 3 7 1 9 4 6 8 0 0 1 2 3 4 5 6 7 8 9 Index of 5: 5 ``` 实验结论: 本实验通过对Java数组的操作,掌握了数组的定义、初始化、遍历、排序和查找等基本操作。在实际编程中,需要根据具体的需求选择合适的数据结构来存储和处理数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值