通过下面题目,掌握数组做函数参数、指针指向数组、冒泡排序、选择法排序等内容●编写排序函数void selectsort ( int *array,int n),它的功能是利用选择法实现数组元素从 大到小的排序; void bubblesort (int *array, int n),它的功能是利用冒泡法实现数组元素从小到大的排序。 ●在main函数中定义数组(长度自定),用scanf进行数组的初始化,然后调用selectSort函数进行从大到小排序,再使用bubbleSort函数重新进行从小到大的排序。最后将排好序的数组打印输出。
时间: 2024-02-28 19:54:39 浏览: 67
好的,下面是代码实现:
```c
#include <stdio.h>
void selectsort(int *array, int n);
void bubblesort(int *array, int n);
int main()
{
int n;
printf("请输入数组长度: ");
scanf("%d", &n);
int array[n];
printf("请输入%d个数字: ", n);
for (int i = 0; i < n; i++)
{
scanf("%d", &array[i]);
}
selectsort(array, n);
printf("选择排序结果(从大到小): ");
for (int i = 0; i < n; i++)
{
printf("%d ", array[i]);
}
printf("\n");
bubblesort(array, n);
printf("冒泡排序结果(从小到大): ");
for (int i = 0; i < n; i++)
{
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
void selectsort(int *array, int n)
{
for (int i = 0; i < n - 1; i++)
{
int max_idx = i;
for (int j = i + 1; j < n; j++)
{
if (array[j] > array[max_idx])
{
max_idx = j;
}
}
if (max_idx != i)
{
int temp = array[i];
array[i] = array[max_idx];
array[max_idx] = temp;
}
}
}
void bubblesort(int *array, int n)
{
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
```
运行结果:
```
请输入数组长度: 5
请输入5个数字: 23 6 12 8 2
选择排序结果(从大到小): 23 12 8 6 2
冒泡排序结果(从小到大): 2 6 8 12 23
```
阅读全文