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

CExercise_07_1指针和数组_5检查一个整数数组是否是回文,即正序与倒序相同

题目:

5.编写一个函数,检查一个整数数组是否是回文,即正序与倒序相同。例如[1,2,3,2,1]就是回文的。要求使用指针的算术运算,不要使用取下标[]运算符。


关键点

想明白回文数组为偶数是start<end,比到一半就完全确定了.到两者相等只有一个的奇数数组时,也确定是回文数了. 所以判断条件start<end.指针指向的数对称相等. 所以回文数比完了一半,没有出现false,就确定为true.


分析:


代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>

/*
    编写一个函数,检查一个整数数组是否是回文,即正序与倒序相同。
    例如[1,2,3,2,1]就是回文的。要求使用指针的算术运算,不要使用取下标[]运算符。

    整个实现的过程非常类似于数组逆序
    用两个指针指向数组开头和末尾
    然后两个比较指针指向的元素,若任意元素不相等,就不是回文数组
*/
bool is_palindrome(int *arr, int len) {//int *arr指向首元素数组的指针.
    int *start = arr;          // 指向数组首元素
    int *end = arr + len - 1; // 指向数组尾元素

    // 首尾指针未相遇,那就继续移动指针比较两个元素的值
    while (start < end) {
        if (*start != *end) { // 如果两个指针指向的元素不相等,则不是回文数组
            return false;
        }
        start++;
        end--;
    }
    return true; // 所有对应元素检查结束,都相等,则是回文数组
}

int main(void) {
    int arr1[] = { 1, 2, 3, 2, 1 };
    int arr2[] = { 1, 2, 3, 4, 5 };

    printf("arr1 is %s\n", is_palindrome(arr1, 5) ? "是回文数组" : "不是回文数组");
    printf("arr2 is %s\n", is_palindrome(arr2, 5) ? "是回文数组" : "不是回文数组");

    return 0;
}
	

在这里插入图片描述


解决方案总结:

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

相关文章:

  • 【C#知识点详解】LinkedList<T>储存结构详解
  • Spring Boot接口返回Long类型的数据时丢失精度的全局处理
  • LCR 131. 砍竹子 I
  • 什么是混合搜索Hybrid Search?
  • Python 小练习系列 | Vol.14:掌握偏函数 partial,用函数更丝滑!
  • 和DeepSeek聊高速公路定向广播
  • NO.79十六届蓝桥杯备战|数据结构-扩展域并查集-带权并查集|团伙|食物链|银河英雄传说(C++)
  • CesiumEarth v1.12 更新,支持安卓平板离线浏览3DTiles格式的三维倾斜模型
  • 【计网】作业4
  • 树和图论(详细整理,简单易懂!)
  • AutoGLM沉思使用方式
  • 【已完结STM32】--自学江协科技笔记汇总
  • WHAT - React 元素接收的 ref 详解
  • 最新Spring Security实战教程(九)前后端分离认证实战 - JWT+SpringSecurity无缝整合
  • 进程间通信-共享内存
  • 辛格迪客户案例 | 河南宏途食品实施电子合约系统(eSign)
  • Wideband Sparse Reconstruction for Scanning Radar论文阅读
  • Linux网络配置与测试
  • 鸿蒙小案例-京东登录
  • 记录IBM服务器检测到备份GPT损坏警告排查解决过程
  • 信息系统项目管理师-第十四章-项目沟通管理
  • 收敛算法有多少?
  • 一周学会Pandas2 Python数据处理与分析-Pandas2一维数据结构-Series
  • k8s创建一个pod,查看状态和详细信息,进入pod,以及删除这个pod
  • 智能指针C++11
  • Spring Boot 通过全局配置去除字符串类型参数的前后空格
  • 遵循IEC62304YY/T0664:确保医疗器械软件生命周期合规性
  • 【Hadoop入门】Hadoop生态之MapReduce简介
  • 25.4.8学习总结
  • 自定义实现C++拓展pytorch功能