c语言 主函数中定义数组int num[10]; 存放10个随机整数,函数void sortnum(int *p, int n); 实现将数组中的前n个数按从小到大排序,后10-n个数从大到小排序,主函数中调用函数,实现对数据的处理,并输出结果。
时间: 2024-01-22 08:20:09 浏览: 82
下面是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void sortnum(int *p, int n); // 声明函数
int main()
{
int num[10];
int n = 0;
srand((unsigned int)time(NULL)); // 用当前时间初始化随机种子
for (int i = 0; i < 10; i++) {
num[i] = rand() % 100; // 随机生成0到99之间的整数
printf("%d ", num[i]);
}
printf("\n请输入要排序的前n个数(n应小于等于10):");
scanf("%d", &n);
sortnum(num, n); // 调用函数
printf("排序后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", num[i]);
}
return 0;
}
void sortnum(int *p, int n)
{
int temp;
// 对前n个数进行从小到大排序
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (*(p + i) > *(p + j)) {
temp = *(p + i);
*(p + i) = *(p + j);
*(p + j) = temp;
}
}
}
// 对后10-n个数进行从大到小排序
for (int i = n; i < 10 - 1; i++) {
for (int j = i + 1; j < 10; j++) {
if (*(p + i) < *(p + j)) {
temp = *(p + i);
*(p + i) = *(p + j);
*(p + j) = temp;
}
}
}
}
```
在这个代码中,我们先使用 `srand()` 函数初始化随机种子,然后使用 `rand()` 函数生成随机数并存储在 `num` 数组中,并且将其输出。接下来,我们让用户输入要排序的前n个数,然后调用 `sortnum()` 函数对数组进行排序。最后,我们将排序后的数组输出。
阅读全文