#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 比较函数
int greater_than(int x, int y)
{
return x - y;
}
int less_than(int x, int y)
{
return y - x;
}
// 生成一个随机数组
void random_array(int a[], int n) {
srand(time(NULL));
for (int i = 0; i < n; i++) {
a[i] = rand() % 100;
}
}
// 打印数组
void print_array(int a[], int n)
{
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
}
// 返回数组最大值
// TODO: 修改并实现所需功能
int max_element(int a[], int n)
{
int max = 0;
for (int i = 0; i < n; i++) {
if (a[i] > max) {
max = a[i];
}
}
return max;
}
// 对数组按照递增顺序排序
// TODO: 修改并实现所需功能
void sort_ascending(int a[], int n)
{
for (int i = 0; i < n - 1; i++) {
for (int x = 0; x < n - i - 1; x++) {
if (a[x] > a[x + 1]) {
int swap = 0;
swap = a[x];
a[x] = a[x + 1];
a[x + 1] = swap;
}
}
}
}
// 根据用户传入的比较函数comp对数组进行排序,
// 如果comp(a, b) > 0,则a排在后面
// TODO: 修改并实现所需功能
void sort(int a[], int n, int (*comp)(const int, const int))
{
int temp = 0;
for (int i = 0; i < n - 1; i++) {
for (int x = 0; x < n - i - 1; x++) {
temp = comp(a[x], a[x + 1]);
if (temp > 0) {
int swap = 0;
swap = a[x];
a[x] = a[x + 1];
a[x + 1] = swap;
}
}
}
}
#define N 10
int main()
{
int a[N];
random_array(a, N);
print_array(a, N);
printf("Max value of a: %d\n", max_element(a, N));
sort_ascending(a, N);
print_array(a, N);
sort(a, N, greater_than);
print_array(a, N);
sort(a, N, less_than);
print_array(a, N);
return 0;
}
这有啥困难的,函数的返回值类型声明全改为function,printf改为console.log还有类型改一下改为var,for改一下就差不多了