输出排序前后的位置
输入一组数,先使用函数由小至大排序,然后输出其在排序前后的位置(在一个数组中完成) //输入一组数,先使用函数由小至大排序,然后输出其在排序前后的位置(在一个数组中完成)#include<stdio.h>
int main()
{
int sort(int(*p), int n);
int i, j, n, (*p);
int arr;
printf("请输入序列大小:");
scanf("%d", &n);
printf("请输入序列各元素:");
for (i = 0;i < n;i++)
{
scanf("%d", &arr);
arr = i + 1;
}
p = arr;
sort(p, n);
for (i = 0;i < 2;i++)
{
for (j = 0;j < n;j++)
{
printf("%3d", arr);
}
printf("\n");
}
}
int sort(int(*p), int n)
{
int i, j, temp1,temp2;
for (i = 0;i < n;i++)
{
for (j = 0;j < n - 1;j++)
{
if (*(*p+ j) > *(*p + j + 1))
{
temp1 = *(*p + j);
*(*p + j) = *(*p + j + 1);
*(*p + j + 1) = temp1;
temp2 = *(*p + n + j);
*(*p + n + j) = *(*p + n + j + 1);
*(*p + n + j + 1) = temp2;
}
}
}
return 0;
} 风过无痕1989 发表于 2020-12-11 17:42
这个题,在两个数组里做,我没有问题,在同一个数组里做,程序中41~43行怎么搞都搞不明白。谢谢!
页:
[1]