C语言,通过下面题目,掌握数组做函数参数、 指针指向数组、 冒泡排序,选择法排序等内容。 1.编写排序函数void selectsort(intarray,intn),它的功能是利用选择法实现数组元素从大到小的排序;2.编写排序函数voidbubblesort(int*array,intn),它的功能是利用冒泡法实现数组元素从小到大的排序。 3.在main函数中定义数组(长度自定),用scanf进行数组的初始化,然后调用selectSort函数进行从大到小排序,再使用bubbleSort函数重新进行从小到大的排序。最后将排好序的数组打印输出。
时间: 2024-02-26 13:57:57 浏览: 74
077李媛7
好的,这是一个关于 C 语言的问题。让我们一步一步来回答。
首先,我们需要定义两个排序函数 `selectsort` 和 `bubblesort`,分别实现选择排序和冒泡排序。
```c
// 选择排序
void selectsort(int array[], int n) {
int i, j, max, temp;
for (i = 0; i < n - 1; i++) {
max = i;
for (j = i + 1; j < n; j++) {
if (array[j] > array[max]) {
max = j;
}
}
if (max != i) {
temp = array[i];
array[i] = array[max];
array[max] = temp;
}
}
}
// 冒泡排序
void bubblesort(int* array, int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
```
接下来,在 `main` 函数中,我们可以定义一个数组,然后使用 `scanf` 对其进行初始化。
```c
#include <stdio.h>
int main() {
int n;
printf("请输入数组长度:");
scanf("%d", &n);
int array[n];
int i;
printf("请输入数组元素:");
for (i = 0; i < n; i++) {
scanf("%d", &array[i]);
}
```
接下来,我们可以调用 `selectsort` 函数对数组进行从大到小的排序,再使用 `bubblesort` 函数对数组进行从小到大的排序。
```c
selectsort(array, n);
printf("从大到小排序后的数组为:\n");
for (i = 0; i < n; i++) {
printf("%d ", array[i]);
}
printf("\n");
bubblesort(array, n);
printf("从小到大排序后的数组为:\n");
for (i = 0; i < n; i++) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
```
最后,我们将排好序的数组打印输出。完整代码如下:
阅读全文