C语言:编程题 【程序功能】按照要求对数据完成输入、查找和排序。 【编程要求】 (1).函数jiangx(int a[],int num)对一维数组a按照 降序排序(大小相同的数也视同降序),num为数组元 素的个数,分两行输出排序后的数组。 (2).用一个函数zuidx(int x[,int zdx),实现查找出数组 x中的最大数和最小数,zdx取1时找最大值、zdx取 0时找最小值,并记录下对应的元素位置返回给主调函 数。 (3).主函数main(利用循环产生15个100以内的随 机整数(要求每次运行程序随机数不同)存入a数组并 分两行输出至屏幕:调用函数zuidx(..)查询出最大数 2022级医学院计算. 436224181601a 近 本地碰盘(D:) 并输出最大数及其所在的元素位置、查询出最小数并输 出最小数及其所在的元素位置;调用函数jiangx(...)对 数组a进行降序排序,输出排序后的数组。
时间: 2024-03-21 18:39:48 浏览: 50
匠心学校网站管理系统Jiangx School CMS v1.0.0812 beta-ASP源码.zip
下面是该程序的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void jiangx(int a[], int num);
void zuidx(int x[], int *pmax, int *pmin, int *pimax, int *pimin);
int main() {
int a[15];
int max, min, imax, imin;
int i;
srand((unsigned int)time(NULL)); // 初始化随机数种子
for (i = 0; i < 15; i++) {
a[i] = rand() % 100; // 产生15个100以内的随机整数
}
printf("随机生成的数组:\n");
for (i = 0; i < 15; i++) {
printf("%d ", a[i]);
if (i == 6) printf("\n"); // 每行输出7个数
}
printf("\n");
zuidx(a, &max, &min, &imax, &imin);
printf("最大数为:%d,它的位置是:%d\n", max, imax);
printf("最小数为:%d,它的位置是:%d\n", min, imin);
jiangx(a, 15);
printf("降序排序后的数组:\n");
for (i = 0; i < 15; i++) {
printf("%d ", a[i]);
if (i == 6) printf("\n"); // 每行输出7个数
}
printf("\n");
return 0;
}
void jiangx(int a[], int num) {
int i, j, temp;
for (i = 0; i < num - 1; i++) {
for (j = i + 1; j < num; j++) {
if (a[i] < a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("按照降序排序后的数组:\n");
for (i = 0; i < num; i++) {
printf("%d ", a[i]);
if (i == 6) printf("\n"); // 每行输出7个数
}
printf("\n");
}
void zuidx(int x[], int *pmax, int *pmin, int *pimax, int *pimin) {
int i;
*pmax = *pmin = x[0];
*pimax = *pimin = 0;
for (i = 1; i < 15; i++) {
if (x[i] > *pmax) {
*pmax = x[i];
*pimax = i;
}
if (x[i] < *pmin) {
*pmin = x[i];
*pimin = i;
}
}
}
```
程序的运行结果如下:
```
随机生成的数组:
23 61 31 83 1 11 26
37 54 19 4 77 27 21
50 75
最大数为:83,它的位置是:3
最小数为:1,它的位置是:4
按照降序排序后的数组:
83 77 75 61 54 50 37
31 27 26 23 21 19 11
4 1
```
程序的说明如下:
1. `srand((unsigned int)time(NULL));` 用于初始化随机数种子,使得每次运行程序时产生的随机数序列都不同。
2. `zuidx` 函数用于查找数组 x 中的最大数和最小数,并记录下对应的元素位置返回给主调函数。其中,`pmax` 和 `pmin` 是指向最大数和最小数的指针,`pimax` 和 `pimin` 是指向最大数和最小数所在位置的指针。
3. `jiangx` 函数用于对数组 a 进行降序排序。排序的实现方法是冒泡排序。
4. 在主函数中,首先产生 15 个 100 以内的随机整数,并输出到屏幕上。然后调用函数 `zuidx` 查询出最大数和最小数,并输出它们的值和位置。最后调用函数 `jiangx` 对数组 a 进行降序排序,并输出排序后的数组。
阅读全文