用C语言创建一个double二维数组,使它的每个元素都是一个0~1之间的随机小数,创建后,请将这个二维数组排序。
时间: 2023-05-24 12:00:54 浏览: 252
这题需要使用C库函数,可以使用rand()函数生成随机数,并使用srand()函数设置随机数种子。接下来使用二重循环,逐个生成随机小数,使用qsort()函数对数组进行排序。下面是代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROW 5
#define COL 5
int cmp(const void *a, const void *b)
{
double x = *((double *)a);
double y = *((double *)b);
if (x < y) return -1;
else if (x > y) return 1;
else return 0;
}
int main()
{
double arr[ROW][COL];
int i, j;
srand(time(NULL));
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
arr[i][j] = (double)rand() / RAND_MAX;
printf("%lf ", arr[i][j]);
}
printf("\n");
}
printf("\n");
for (i = 0; i < ROW; i++) {
qsort(arr[i], COL, sizeof(double), cmp);
}
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
printf("%lf ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
该程序使用srand()函数设置随机数种子。接下来使用二重循环生成随机小数,并输出到屏幕上。随后使用qsort()函数对二维数组的每一行进行排序,最后将排好序的二维数组输出到屏幕上。
阅读全文