指针练习

PTA 实验作业

题目1 :6-5 利用指针找最大值

本题题目及裁判测试程序样例

 

本题要求实现一个简单函数,找出两个数中的最大值。

 

1. 本题PTA提交列表

 

2. 本题设计思路

这道函数题要求我们用指针的方式来找出两个数中的最大值.

其中pxpy是题目中定义的用户传入的两个整数的指针。也就是我们要比较的两个数.

函数findmax应找出两个指针所指向的整数中的最大值,存放在pmax指向的位置。

首先当在子函数传入两个数之后,先判断两个指针所指向的数值之差.

如果*px>*py 则令* pmax=*px, 反之亦然.

 

3.1 源代码子函数截图

 

 

3.2 思路流程图截图

 

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

 

 

这道题稍微简单,只要注意一下条件就行.

 

题目2 :7-1 输出学生成绩

1. 本题PTA提交列表

 

 

2. 本题设计思路

这道题本题要求我们编写程序,根据首先输入的学生的成绩,统计并输出学生的平均成绩ave、最高成绩max和最低成绩min.

虽然建议使用动态内存分配来实现,但由于并不是很熟悉动态分配,在多次测试失败之后只好选择普通方法.

首先先定义 max=0,min=100,sum=0,注意使用的是 double 双精度类型定义.

先输入学生人数 n, 然后进入循环输入成绩,循环 n 次结束.

每一次循环输入之后都要与 max 和min 进行比较,若大于 max则将此数赋给 max,若小于 min则将此数赋给 min, 之后将每次的数累加到 sum.

最后输出 min,max 和 sum/n.

 

3.1 源代码截图

 

 

3.2 思路流程图截图

 

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

 

在定义数组时候误将 a[n] 定义成a[n-1],导致后面循环和输入次数少一次.

 

题目2 :7-2 在数组中查找指定元素

1. 本题PTA提交列表

 

 

2. 本题设计思路

 本题要求我们输入一个正整数repeat (0<repeat<10),做repeat次运算:

输入一个正整数 n,然后输入n个整数存入数组a[]中.

再输入一个整数x,在数组a中查找x,如果找到则输出相应元素的最小下标,否则输出"Not found"。

本题要求定义并调用函数search(list, n, x),在数组list中查找元素x,若找到则返回相应元素的最小下标,否则返回-1,函数 list 的类型是整型指针,n和x的类型是int,函数的类型是int。

首先输入需要的做运算的次数repeat,然后做 repeat 次循环,依次输入 n 个整数再执行 n 此循环,最后输入需要找到的数 x.开始进入判断过程的子函数.

在子函数中循环 n 次判断x 是否等于 list+i 地址中的数,有的话跳出循环,没有的话输出 i.

3.1 源代码截图

 

 

3.2 思路流程图截图

 

 

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

这道题在输入list[] 和 x的时候忘记其中对 list[] 要循环输入,不能合起来输入x和 lisrt[].

 

同学代码结对互评

1.互评同学名称

谢晔晖

题目 7-1

2.我的代码

 

 

对方代码

 

从二者中很容易可以看出对方使用的是指针,而我用的是普通的循环数组.

我的思路是在每次输入学生成绩后直接和 max 和 min 对比,同时累加到最后计算平均值.

对方使用的是子函数和指针的方式进行计算,答题思路和我的一样,只是对与格式略有不同.

本题本来要求使用动态分布进行计算,但对方使用指针和子函数时整个结构更有条例性,但略显稍长.我是使用普通方法固稍微易于理解.

总体来说如果不是题目要求我更喜欢我的方式.

 

PTA 最终排名

本周学习总结

一.你学会了什么

我学会的知识点:

1.指针是一个单独变量,只是指向了其他变量的地址(相当于汇编中的间接寻址,与地址寄存器类似);

2. sizeof对于指针变量和数组的处理是不一样的。拿上指针p 和数组a[10]来说,对于一个32位地址的系统。p是一个指针变量其内容存储的是4个字节的地址;而数组名a并不是一个变量,它是一个常量的地址,sizeof将其视为整个数组的代表,因此计算的时候会计算整个数组的大小。

3.指针和数组作为参数传递的时候,其实是传递的一个地址。函数指针与所指向的函数,返回值类型和形参列表必须一致.

 

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

在本章中对动态存储空间的使用还不大熟悉,总是忘记对指针进行初始化.还有就是在利用子函数时候对指针的指向性比较模糊.

 

三.指针结构考试总结

虽然在指针方面没有很精通,不过经过这次考试之后还是需要多练习指针.

 

转载于:https://www.cnblogs.com/xiaori520/p/8277887.html

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个函数的实现很简单,可以使用比较运算符(如">")来判断两个数的大小关系,然后返回较大的数。例如: ```python def max_num(num1, num2): if num1 > num2: return num1 else: return num2 ``` 也可以使用Python自带的max()函数,例如: ```python def max_num(num1, num2): return max(num1, num2) ``` 这样就实现了出两个数中的最大值的功能了。 ### 回答2: 实现寻两个数最大值的函数可以很简单,可以先判断其中一个数是否大于另一个数,如果是,则返回该数,否则返回另一个数。具体实现如下: ```python def find_max(a, b): if a > b: return a else: return b ``` 在这个函数中,我们使用了 if-else 语句来进行条件判断,当 a 大于 b 时就返回 a,反之返回 b。这是一个非常基础的例子,这里函数的功能十分简单,因此代码也十分简单。 使用示例: ```python result = find_max(2, 5) print(result) # 输出 5 result = find_max(10, -3) print(result) # 输出 10 ``` 在这里,我们先调用了 find_max 函数来获取两个数中的最大值,然后再输出结果。 总结一下,寻两个数中最大值这个问题非常简单,只需要一行代码即可解决。然而,这也是编程的魅力所在,即通过解决一个个小而简单的问题,不断地累积经验,不断地向着更高的目标前进。 ### 回答3: 这个问题看似非常简单,但在编程中是非常常见的问题,并且在日常操作中也非常常见。到两个数的最大值可以通过比较运算符来实现。我们可以编写一个简单的函数来实现这个问题。 假设输入的两个数字为a和b,我们可以使用if语句来比较这两个数字的大小。如果a大于b,我们就返回a;如果a小于b,我们就返回b。如果a等于b,那我们就可以返回任意一个数字,因为它们都是最大值。 下面是一个Python函数的示例,用来到两个数字中的最大值: def find_max(a, b): if a > b: return a else: return b 这个函数非常简单,只需要两个参数a和b,然后返回最大值。我们可以在Python中调用这个函数,如下所示: print(find_max(5, 10)) # 输出10 这个函数在Python中非常常见,它的语法也非常简单,并且可以轻松地适用于其他编程语言。无论你使用哪个编程语言,只需要按照类似的逻辑来编写函数即可。 总体来说,这个问题的解决方法是非常简单的,并且可以应用到各种类型的应用程序中。在编写程序时,最大值是一个非常常见的操作,因此我们需要学会这个操作并熟练掌握它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值