用C语言设计函数sortArrayByPointer,函数的功能是:使用指针实现对数组a[10]={12,5,13,25, 21,46,34,37,19,2}进行降序排序,将结果存到数组b中并输出。要求:除了定义数组a,b时,任何地方不可以使用下标法(即[]),必须使用指针;不可以改变数组a
时间: 2024-03-26 11:39:40 浏览: 35
好的,这是您的第一个问题。以下是我的回答:
您可以使用指针来实现对数组的排序,具体实现方法如下:
```c
void sortArrayByPointer(int* a, int* b, int length) {
// 将数组a的值拷贝到b中
for (int i = 0; i < length; i++) {
*(b + i) = *(a + i);
}
// 对数组b进行降序排序
for (int i = 0; i < length - 1; i++) {
for (int j = i + 1; j < length; j++) {
if (*(b + i) < *(b + j)) {
// 交换两个元素的值
int temp = *(b + i);
*(b + i) = *(b + j);
*(b + j) = temp;
}
}
}
// 输出结果
for (int i = 0; i < length; i++) {
printf("%d ", *(b + i));
}
}
```
您可以调用这个函数来对数组a进行排序,如下所示:
```c
int main() {
int a[10] = {12, 5, 13, 25, 21, 46, 34, 37, 19, 2};
int b[10];
sortArrayByPointer(a, b, 10);
return 0;
}
```
这样,就可以实现使用指针对数组进行排序的功能,并且不会改变数组a的值。
阅读全文