C语言:定义冒泡排序函数。实参数组名,形参指针
时间: 2023-12-05 17:59:00 浏览: 108
以下是使用指针作为形参,实现冒泡排序的C语言函数:
```c
void bubble_sort(int *arr, int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - 1 - i; j++) {
if (*(arr + j) > *(arr + j + 1)) {
temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
```
此函数接受一个整型数组的指针和数组长度作为参数,使用指针来操作数组元素,实现冒泡排序。
相关问题
定义长度为3的整型数组,采用函数调用实现按照从大到小的顺序排序。在主函数中输出排序前和排序后的数组。实参为指针变量,形参为数组名;
好的,这是一个C语言的问题,我来给你解答一下。
首先,我们需要定义一个长度为3的整型数组:
```
int arr[3] = {3, 1, 2};
```
然后,我们可以写一个函数来实现按照从大到小的顺序排序,函数的参数是一个整型数组的指针:
```
void sort(int *arr) {
int temp;
for (int i = 0; i < 3; i++) {
for (int j = i + 1; j < 3; j++) {
if (arr[i] < arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
```
这个函数中,我们使用了冒泡排序的方法,把数组中的元素从大到小排序。
最后,我们在主函数中调用这个函数,并输出排序前和排序后的数组:
```
int main() {
int arr[3] = {3, 1, 2};
printf("排序前:");
for (int i = 0; i < 3; i++) {
printf("%d ", arr[i]);
}
printf("\n");
sort(arr);
printf("排序后:");
for (int i = 0; i < 3; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
运行程序,输出结果如下:
```
排序前:3 1 2
排序后:3 2 1
```
这就是按照从大到小的顺序排序的结果了。
定义长度为3的整型数组,采用函数调用实现按照从大到小的顺序排序。在主函数中输出排序前和排序后的数组,实参为指针变量,形参为指针变量
好的,这是一个C语言的问题,我来给你解答一下。
首先,我们需要定义一个长度为3的整型数组:
```
int arr[3] = {3, 1, 2};
```
然后,我们可以写一个函数来实现按照从大到小的顺序排序,函数的参数是一个指向整型数组的指针:
```
void sort(int *arr) {
int temp;
for (int i = 0; i < 3; i++) {
for (int j = i + 1; j < 3; j++) {
if (*(arr + i) < *(arr + j)) {
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
}
}
```
这个函数中,我们使用了冒泡排序的方法,把数组中的元素从大到小排序。注意,在函数中使用指针变量来访问数组元素时,需要使用指针加上偏移量的方式来访问,也就是 `*(arr + i)` 的形式。
最后,我们在主函数中调用这个函数,并输出排序前和排序后的数组:
```
int main() {
int arr[3] = {3, 1, 2};
printf("排序前:");
for (int i = 0; i < 3; i++) {
printf("%d ", arr[i]);
}
printf("\n");
sort(arr);
printf("排序后:");
for (int i = 0; i < 3; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
运行程序,输出结果如下:
```
排序前:3 1 2
排序后:3 2 1
```
这就是按照从大到小的顺序排序的结果了。
阅读全文