当前位置: 首页 > 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是不变的,继续下一个比较.

在这里插入图片描述

http://www.dtcms.com/a/118018.html

相关文章:

  • 数据库——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连接远端主机以及免密配置
  • react 18 可中断的理解以及应用
  • 蓝桥杯第十二届省赛B组C++真题解析
  • 4.7正则表达式
  • el-select组件与el-tree组件结合实现下拉选择树型结构框
  • 深度学习实战电力设备缺陷检测
  • leetcode 416. 分割等和子集 中等
  • 科技快讯 | DeepSeek 公布模型新学习方式;Meta发布开源大模型Llama 4;谷歌推出 Android Auto 14.0 正式版
  • IntelliJ IDEA下开发FPGA
  • 【go】类型断言
  • 学习海康VisionMaster之直线查找组合