#include
#define numlen 5
void delay(int *k, int len)
{
int temp, *b, *c;
for(c = k; c < k+len-1; c++)
for (b=c+1; b < k+len; b++)
if (*c >*b )
{
temp = *c;
*c = *b;
*b = temp;
}
}
int main()
{
int a[numlen],*p;
for(p=a; p < a+numlen; p++)
scanf("%d",p);
delay(a, numlen);
for (p=a; p < a+numlen; p++)
printf("%d", *p);
return 0;
}
#include
#define numlen 5
void delay(int *k, int len)
{
int temp, b, c;
for(c = 0; c < 5; c++){
for (b=c+1; b < 5; b++){
if (k[c] >k[b] )
{
temp = k[c];
k[c] = k[b];
k[b] = temp;
}
}
}
}
int main()
{
int a[numlen],p;
for(p=0; p < numlen; p++){
scanf("%d",&a[p]);
}
delay(a, numlen);
for (p=0; p < numlen; p++){
printf("%d ", a[p]);
}
return 0;
}
这个错误主要集中在你指针的使用上,一般遍历循环的时候不使用指针判断大小以及终止条件,因为它判断大小的时候是用的它指向地址的大小值。
你试着:3 6 9 5 1回车,而不是3,6,9,5,1回车