回文数怎么用数组来做

img

这个是回文数用数组做出来的,有点看不懂,right=4,是什么意思,while里面也有点看不懂,求解,谢谢了

//用 12421 举例分析 
#include<stdio.h>

int main(){
    int num;
    int arr[5];//定义数组 
    int i=0,left=0,right=4;//right=4就是剥离的数不能超过4个 
    scanf("%d",&num);
    
    while(i<5){//i从0开始循环 
        /*
        取余,依次剥离最后一位数并赋值给对应的数组元素,
        1-->arr[0] 2-->arr[1] ......
        */
        arr[i] =num % 10;
        i++;
        /*
        取整,依次去掉最后一位数,
        第一次后 1242 ,第二次后 124 ...... 
        */
        num /= 10; 
    }
    while(left < right){
        if(arr[left] != arr[right]){//如果这边的字符串不等于右边的字符串 
            printf("不是回文数");
            return 0; 
        }
        //左边的少左边加一个字符,右边减一个字符
        left++; 
        right--;
    }
    printf("是回文数");
    return 0;
} 

img

超过后就不对。

img