c语言编程 输入4个整数,从小到大排序,用指针完成。我做的怎么错了?

如题所述

肯定错误 你用的指针 在前面 符合你的判断 就修改 那后来的判断 就是根据修改以后的 因为指针 是直接进入 内存 直接把值 给修改了 之歌 用法 用于普通变量 判断可以追问

还是不太懂哎

追答

指针指向变量的内存 直接修改他的值 你在第一个if 那吧数值给改变了 等到了 第二个if 那就判断的不是以前的值了 而是 修改后的值 然后 在判断 这样来讲 是不是 就产生了;逻辑上的错误了
好比 1 2 3 初始的 值我们就是要判断转换他 现在 用指针 进行判断 1 3 2 变成了 在判断 旧的在这个基础上面 判断 而不是 1 2 3

追问

要怎样做才对呢

追答

#include
#define N 4
void sort(int * pArr, int len )
{
int i,j,t;
for( i = 0; i pArr[j+1] )//转换大于小于号 >表示升序 < 表示降序
{
t = pArr[j];
pArr[j] = pArr[j+1];
pArr[j+1] = t;

}

}
}
}
int main(void)
{

int a[4];

int i;
printf("输入 N 个数值:");
for( i = 0; i< N; i++)
{
scanf("%d", &a[i]);
}

sort(a, N );
for( i = 0; i < N; i++ )
{
printf("%d ",a[i] );
}
printf("\n");
return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答