新手请教问题.插入排序中遇到的.
请先不要管插入排序实现的如何,我想知道为什么注释的地方和我预想的不一样?
谢谢大家了.
#include <stdio.h>
int main() {
int n[10] = {2,3,4,5,6,8,11,22,33,66};
int x = 23;
int m[] = {};
int i;
int b = 0;
for (i=0; i<10; i++) {
printf("%d\n",n[i]); //这里为什么是 2,3,4,5,6,8,11,22,33,[23注意这里],66 我预想着是33
if (n[i] > x) {
if (b > 0) {
m[i+1] = n[i];
} else {
m[i] = x;
b = 1;
i--;//注意这里
}
} else {
m[i] = n[i];
}
}
int k;
for (k=0; k<11; k++) {
printf("%d",m[k]);
printf("\t");
}
return 0;
}
[解决办法]
恩,是的。在定义的时候有初值,数组的长度就是默认为初始值的长度