以下是源代码:输入的十个数依次是1 0 0 0 0 0 0 0 0 0
#include <stdio.h>
#define MAX 10
int exchange(int*p1,int*p2);
int main(void) {
int i, n, num;
int a[MAX];
printf("请输入任意的十个数字\n");
for (i = 0; i < 10; i++) {
scanf_s("%d", &a[i]);
}
for (n = 1; n <10; n++) {
for (num = 0; num < MAX - n; num++) {
if (a[num > a[num + 1]]) {//问题出现在这个身上,在进行第三次比较的时候,结果是0(否)但是a(2)=1确实大于a(3=0)但是结果还是没有变
exchange(&a[num], &a[num + 1]);
}
}
}
for (i = 0; i < 10; i++) {
printf("%d", a[i]);
}
return 0;
}
int exchange(int* p1, int* p2) {
int c;
c = *p1;
*p1 = *p2;
*p2 = c;
}