为什么只有第一个实现了数值分离

//实现找到98589之后第一个左右对称的数
#include
void main() {
long n;
int a[5] = { 0,0,0,0,0 };
for (n = 95860;n<100000;n++) {
a[0] = n / 10000;
printf("%d", a[0]);
n = n % 10000;
a[1] = n / 1000;
printf("%d", a[1]);
n = n % 1000;
a[2] = n / 100;
printf("%d", a[2]);
n = n % 100;
a[3] = n / 10;
printf("%d", a[3]);
a[4] = n % 10;
printf("%d \t", a[4]);
if ((a[0] == a[4]) && (a[1] == a[3])) {
break;
}
}
printf("%d %d %d %d %d", a[0], a[1], a[2], a[3], a[4]);
}

不要在循环内修改你的n值,否则整个循环都乱套了

#include<stdio.h>
void main() {
    long n,m;
    int a[5] = { 0,0,0,0,0 };
    for (n = 95860;n<100000;n++) {
        m = n;
        int i;
        for(i = 4; i >= 0; i--)
        {
            a[i] = m % 10;
            m = m / 10;
        }
        if ((a[0] == a[4]) && (a[1] == a[3])) {
            break;
        }
    }
    printf("%d %d %d %d %d", a[0], a[1], a[2], a[3], a[4]);
}

图片说明