2021

阅读: 评论:0

2021

2021

第3关:利用指针方法求数组的最大值和最小值

任务描述
相关知识
擂台赛算法思想
用指针变量指向最大值最小值
编程要求
测试说明
任务描述
本关任务:编写程序,利用指针方法求数组的最大值和最小值。

相关知识
擂台赛算法思想
求最大值的擂台赛算法思想:从数组中任意找一个数组元素作为擂主,默认是最大值,遍历数组,将每个数组元素依次和擂主比较,如果比擂主大就将这个数组元素的值赋给擂主,否则就离开,直至最后一个数组元素,即可得出擂主就是最大值。

为了完成本关任务,需要定义一个指针变量指向任意一个数组元素,擂主是指针变量指向的数组元素,遍历数组,将每个数组元素依次和指针变量指向的数组元素比较。如果大就将这个数组元素的地址赋给指针变量,否则指针变量的值不变,直至最后一个数组元素,即可得出指针变量指向的数组元素为最大。

求最小值的算法思想与求最大值的算法思想一致。

用指针变量指向最大值最小值
定义指针变量 max 保存最大值的地址,指针变量 min 保存最小值的地址。

编程要求
根据提示,在右侧编辑器 Begin-End 区间补充代码,从后台输入 3 个数,使用指针方法找到 3 个数中最大和最小的数并输出。

测试说明
平台会对你编写的代码进行测试:

测试输入:
4 91 51
预期输出:
min=4
max=91

测试输入:
151 91 1
预期输出:
min=1
max=151

#include<stdio.h>
#define M 3
main()
{int a[M],i;int *max,*min;for(i=0 ;i<M; i++){scanf("%d",&a[i]);}/***** 将指针变量max,min初始化 *****//********** Begin **********/max=a;min=a;/********** End **********//***** 将每个数组元素依次与max,min指向的数组元素比较,使max,min分别指向的最大、最小的数组元素 *****//********** Begin **********/for(int j=0;j<3;j++){if(*max<a[j]){max=&a[j];}if(*min>a[j]){min=&a[j];}}/********** End **********//***** 通过指针变量max,min输出最大值和最小值 *****//********** Begin **********/printf("min=%dn",*min);printf("max=%d",*max);/********** End **********/return 0;
}

本文发布于:2024-01-28 19:50:14,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064426179855.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23