编写sort()函数,实现将 main()函数中的整型数组 a按降序排列,要求使用指针作为函数的参数。
参考如下:
#include<stdio.h>
// 从前往后冒泡
void sort(int *a,int n)
{
int i,j,t,noswap;
for(i=0;i< n-1; i++)
{
noswap=1;
for(j=0;j<n-1-i;j++)
if(a[j+1]>a[j])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
noswap=0;
}
if(noswap)
break;
}
}
int main()
{
int n;
printf("Input n:");
scanf("%d", &n);
printf("Input %d numbers:", n);
int a[n];
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
sort(a, n);
printf("Sorting results:");
for (int i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
return 0;
}
我能够编写一个能够将整型数组按降序排列的sort()函数,并且使用指针作为函数参数,具体步骤如下:
代码如下:
#include<iostream>
using namespace std;
void my_sort(int* arr, int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (arr[j] < arr[j + 1]) {//比较相邻的两个元素
//如果前面的元素比后面的元素小,就交换位置
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = { 5, 8, 2, 3, 1 };
int len = sizeof(arr) / sizeof(arr[0]);
my_sort(arr, len);
for (int i = 0; i < len; i++) {
cout << arr[i] << " ";//输出排好序的数组
}
return 0;
}