调用函数比大小,结果有偏差

img

img


1098和1097位置不对,麻烦各位帮忙看看,还有编译结果有黄色那条是什么意思,能解释一下吗,谢谢大家

仅供参考,谢谢!

img

#include <stdio.h>

int digi(int n)
{
    int x = 0;

    x += n % 10;
    x += (n % 100 - n % 10);
    x += (n % 1000 - n % 100);

    return x;
}

void jssort(int a[], int n)
{
    int i, j, small, tmp;
    for (i = 0; i < n - 1; i++)
    {
        small = i;
        for (j = i + 1; j < n; j++)
        {
            if (digi(a[j]) < digi(a[small]))
                small = j;
        }

        if (small != i)
        {
            tmp = a[i];
            a[i] = a[small];
            a[small] = tmp;
        }
    }
}

int main(int argc, char *argv[])
{
    int a[10];
    for (int i = 0; i < 10; i++)
        scanf("%d", &a[i]);

    jssort(a, 10);

    puts("");
    for (int i = 0; i < 10; i++)
        printf("%d ", a[i]);
    puts("");

    return 0;
}