利用指针作为函数形参,实现10个整数从小到大排序后输出
时间: 2024-05-12 22:16:19 浏览: 210
可以,请看下面的代码实现。
```
#include <stdio.h>
#include <stdlib.h>
void sort(int *nums, int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++) {
if (*(nums + i) > *(nums + j)) {
temp = *(nums + i);
*(nums + i) = *(nums + j);
*(nums + j) = temp;
}
}
}
}
int main() {
int nums[10] = {3, 9, 5, 2, 8, 1, 7, 6, 4, 0};
sort(nums, 10);
for (int i = 0; i < 10; i++) {
printf("%d ", *(nums + i));
}
printf("\n");
return 0;
}
```
这个程序利用指针作为函数的形参,实现了输入10个整数,然后对它们进行从小到大排序的功能并输出。
相关问题
指针做函数形参实现10个整数从小到大排序
在C/C++等语言中,使用指针作为函数形参可以实现排序功能,特别是在需要传递大量数据的情况下,因为指针传递的是地址而不是值,节省了内存。假设我们有一个简单的冒泡排序算法,我们可以创建一个函数接受一个指向整数数组首元素的指针以及数组的长度来进行排序:
```cpp
void bubbleSort(int* arr, int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - 1 - i; ++j) {
if (arr[j] > arr[j + 1]) {
// 交换 arr[j] 和 arr[j+1]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
然后你可以这样调用这个函数并传递一个指向你想要排序的10个整数的数组:
```cpp
int numbers[10] = {9, 5, 2, 7, 1, 8, 6, 3, 4, 0};
bubbleSort(numbers, 10);
```
利用C语言指针作为函数的形参实现10个整数从小到大排序。
在C语言中,可以利用指针作为函数的形参,并结合数组传递来实现对一组整数的排序。这里我们展示一个简单的冒泡排序算法的例子,它接受一个指向整数数组首元素的指针以及数组长度:
```c
#include <stdio.h>
// 排序函数,传入一个整数指针和数组长度
void sort(int* arr, int n) {
for (int i = 0; i < n - 1; i++) { // 遍历数组直到倒数第二个元素
for (int j = 0; j < n - 1 - i; j++) { // 每次内循环都将最大的元素“沉”下去
if (*arr[j] > *arr[j + 1]) {
// 如果前一个元素比后一个大,交换它们
int temp = *arr[j];
*arr[j] = *arr[j + 1];
*arr[j + 1] = temp;
}
}
}
}
// 测试函数
int main() {
int numbers[10] = {5, 3, 9, 1, 7, 2, 8, 6, 4, 10}; // 待排序的10个整数
int size = sizeof(numbers) / sizeof(numbers[0]); // 计算数组长度
printf("Before sorting:\n");
for (int i = 0; i < size; i++) {
printf("%d ", numbers[i]);
}
sort(numbers, size); // 调用排序函数
printf("\nAfter sorting in ascending order:\n");
for (int i = 0; i < size; i++) {
printf("%d ", numbers[i]);
}
return 0;
}
```
阅读全文