- 论坛徽章:
- 0
|
在testsort.c中,
#include<stdlib.h>
#include<stdio.h>
#include"bubble.c"
#define NUM 10
int main()
{
int i;
int a[NUM] ={5, 2, 6, 7, 3, 8, 1, 9, 10, 4};
// for (i = 0; i<NUM; i++)
// printf("*%x*\n", a+i);
// for (i = 0; i<NUM; i++)
// printf("*%d*", *(a+i));
// printf("\n");
bubble(a, NUM);
for (i = 0; i<NUM; i++)
printf("*%x*\n", a+i);
for (i = 0; i<NUM; i++)
printf("*%d*", *(a+i));
printf("\n");
return 1;
}
在buble.c 中,
void swap (int *a, int *b);
void bubble(int *a, int length);
void bubble(int *a, int length)
{
int i, j;
for (i = 0; i< length; i++)
for (j = 0; j < length-i; j++)
if ( a[j] > a[j+1] )
swap ( a+j, a+j+1);
}
void swap (int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
问题阐述:
如果在testsort中,
输出为:
*bffba4c8*
*bffba4cc*
*bffba4d0*
*bffba4d4*
*bffba4d8*
*bffba4dc*
*bffba4e0*
*bffba4e4*
*bffba4e8*
*bffba4ec*
*-1209025104**1**2**3**4**5**6**7**8**9*
如果把testsort中,注释的那段的注释去掉,让他运行,
输出为:
*bf98dea8*
*bf98deac*
*bf98deb0*
*bf98deb4*
*bf98deb8*
*bf98debc*
*bf98dec0*
*bf98dec4*
*bf98dec8*
*bf98decc*
*5**2**6**7**3**8**1**9**10**4*
*bf98dea8*
*bf98deac*
*bf98deb0*
*bf98deb4*
*bf98deb8*
*bf98debc*
*bf98dec0*
*bf98dec4*
*bf98dec8*
*bf98decc*
*1**2**3**4**5**6**7**8**9**10*
这是什么原因呢? |
|