#include <stdlib.h>
int main()
{
int n;
scanf("%d", &n);
int* p = (int*)malloc(n * sizeof(int));
if (p == NULL)
{
printf("%s", strerror(errno));
}
int* p1 = p;
//p1
int i; //p
for (i = 0; i < n; i++) //_________________________________
{
scanf("%d", &(*(p+i)));
}
for (i = 0; i < n; i++)
{
printf("%d ", *(p + i));
}
printf("\n");
///////////////////////////////////////
for (i = 0; i < n - 1 ; i++)
{
for (p=p1; p < p + n - 1; p++)
{
if (*p > *(p + 1))
{
int t;
t = *p; *p = *(p + 1); *(p + 1) = t;
}
}
//p = p - (n - 1);
}
for (i = 0; i < n; i++)
{
printf("%d ", *(p + i));
}
free(p);
p = NULL;
return 0;
}
最后始终是 if语句报错,不知道问题出现在哪里