当前位置: 首页 > news >正文

CExercise_06_1指针和数组_1查找数组的最大值和最小值

题目:

查找数组的最大值和最小值,但要将最大值作为返回值返回,最小值则依靠传入的指针完成赋值。
要求不能使用"[]"运算符。
函数的声明如下:
int max_min(int *arr, int len, int *pmin);


关键点

1) * 运算符用于解引用指针,获取指针指向的值

2) 指针算术运算(如 p++)会自动按指向类型的大小移动指针

3) 通过指针可以遍历和修改数组元素而不使用 [] 运算符


分析:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

/*
查找数组的最大值和最小值,但要将最大值作为返回值返回,最小值则依靠传入的指针完成赋值。
要求不能使用"[]"运算符。
函数的声明如下:
int max_min(int *arr, int len, int *pmin);
*/
int max_min(int *arr, int len, int *pmin) {
    int max = *arr; // 假设第一个元素是最大的
    *pmin = *arr; // 同样假设第一个元素是最小的
    int *p = arr + 1; // 指向数组的第二个元素

    while (p < arr + len) {
        if (*p > max) {
            max = *p;
        }
        if (*p < *pmin) {
            *pmin = *p;
        }
        p++; // 移动到下一个元素
    }
    return max;
}

int main(void) {
    int numbers[] = { 3, 1, 4, 1, 5, 9, 2, 6 }; // 测试数组
    int min; // 用于存储最小值
    int size = sizeof(numbers) / sizeof(numbers[0]); // 计算数组长度

    // 调用max_min函数,传入数组、长度和 min 的地址
    int max = max_min(numbers, size, &min);

    // 输出结果 
    printf("数组中的最大值是: %d\n", max); //打印返回的最大值
    printf("数组中的最小值是: %d\n", min); //通过指针获得的最小值

    return 0;
}
	

在这里插入图片描述

解决方案总结:

:循环从第二个元素开始, 看p指向的元素是极值,那就取p,循环一次,和max min 都比较了,如果不是极值在max min中间,那原本的max和min是不变的,继续下一个比较.

在这里插入图片描述

相关文章:

  • 数据库——Redis
  • 使用 `keytool` 生成 SSL 证书密钥库
  • 【DeepSeek工具教程】IntersectionObserver+API分页懒加载实现指南之React项目1
  • 【KMP】P7114 [NOIP2020] 字符串匹配|省选-
  • 蓝桥杯 封闭图形个数 刷题笔记
  • Set 集合
  • Allegro软件自带的封装库
  • 目录穿越 + pickle反序列化 -- xyctf Signin WP
  • 智能DNS解析:解决高防IP地区访问异常的实战指南
  • Spring Boot 自定义 Redis Starter 开发指南(附动态 TTL 实现)
  • 【MATLAB】将数据保存在mat文件中 save/load/matfile
  • 力扣HOT100之链表:142. 环形链表 II
  • Spring MVC 返回 JSON 视图的方式及对比(6种)
  • [Linux系统编程]多线程
  • 从ERTS会议学习Scade的发展
  • x-cmd install | Slumber - 告别繁琐,拥抱高效的终端 HTTP 客户端
  • 软件工程第三章习题
  • 【蓝桥杯】Python大学A组第十五届省赛
  • 大数据处理全链路优化:从并行文件处理到可视化加速的工程实践
  • 【Linux工具篇】保姆级配置vscode连接远端主机以及免密配置
  • 浙江广厦:诚挚道歉,涉事责任人交公安机关
  • 广东高州发生山体滑坡,造成2人遇难4人送医救治1人失联
  • 体坛联播|水晶宫队史首夺足总杯,CBA总决赛爆发赛后冲突
  • 从良渚到三星堆:一江水串起了5000年的文明对话
  • 美国务卿与以色列总理通话,讨论加沙局势
  • 信俗与共:清代新疆回疆儒释道庙宇的中华政教