|
10鱼币
如题,为什么加了注释的和没加的会有差别?!Windows下没有称手的调试工具,求请教!
- #include <stdio.h>
- int arr[101],n;
- void insert_sort(int len)
- {
- int i, j, t;
-
- for (i=1; i<len; i++)
- {
- t = arr[i];
- // for (j=i-1; j>=0&&arr[j]>t; j--)
- for (j=i-1; j>=0&&arr[j]>arr[i]; j--)
- {
- arr[j+1] = arr[j];
- }
- // arr[j+1] = t;
- arr[j+1] = arr[i];
- }
- }
- int main()
- {
- int i, j;
-
- scanf("%d", &n);
- for (i=0; i<n; i++)
- scanf("%d", &arr[i]);
-
- insert_sort(n);
-
- //print
- for (i=0; i<n; i++)
- printf("%d ", arr[i]);
-
- getchar(); getchar();
-
- return 0;
- }
复制代码
|
最佳答案
查看完整内容
是的呀,j 对 i 没影响。
但是arr[j] 会对 arr 有影响。因为 j 的变化范围与 i 的值有交集。
for循环第一步,j = i - 1;
arr[j+1] 这个不就是 arr 吗?
|