61.对一个整数数组排序
输入一个整数 m,然后输入 m 个整数存入数组,用一个指针数组分别指向该数组的对应元素。
要求,在不改变原始数组顺序的情况下,通过指针数组对数据按升序排序。
说明:请仅提交你编写的函数 int resort(int *pa[], int num);
预设代码
前置代码
view plainprint?- /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
- #include <stdio.h>
- #include <stdlib.h>
- int resort(int *pa[], int num);
- //通过指针数组pa对所指的num个数据进行间接排序(升序)
- int main(int argc, char *argv[])
- {
- int a[100], num, i, *pa[100];
- scanf("%d", &num);
- for ( i=0; i<num; i++) {
- scanf("%d", &a[i]);
- pa[i] = &a[i];
- }
- resort(pa, num); //这是你需要编写并提交的函数
- for( i=0; i<num; i++ ) { //按指针pa的顺序输出排序结果
- printf("%d\n", *pa[i]);
- }
- return 0;
- }
- /* PRESET CODE END - NEVER TOUCH CODE ABOVE */
测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 | 以文本方式显示
|
以文本方式显示
|
1秒 | 64M | 0 |
测试用例 2 | 以文本方式显示
|
以文本方式显示
|
1秒 | 64M | 0 |
【分析】:
没什么好分析的
【代码】:
查看代码
#include <stdio.h>
#include <stdlib.h>
int resort(int* pa[], int num);
//通过指针数组pa对所指的num个数据进行间接排序(升序)
int main(int argc, char* argv[])
{
int a[100], num, i, * pa[100];
scanf("%d", &num);
for (i = 0; i < num; i++) {
scanf("%d", &a[i]);
pa[i] = &a[i];
}
resort(pa, num); //这是你需要编写并提交的函数
for (i = 0; i < num; i++) { //按指针pa的顺序输出排序结果
printf("%d\n", *pa[i]);
}
return 0;
}
int resort(int* pa[], int num)
{
for (int i = 0; i < num; i++) {
for (int j = i; j < num; j++)
if (*pa[i] > *pa[j]) {
int t = *pa[i];
*pa[i] = *pa[j];
*pa[j] = t;
}
}
return 1;
}
标签:resort,int,pa,61,num,数组,排序 From: https://www.cnblogs.com/alien-han/p/17010894.html