要求定义一个函数实现对任意长度数组的排序的操作, 并计算最大值、最小值、平 均值。 在主程序中,定义一个数组,并通过 scanf 输入数组中每个元素的值,调用 该函数后,打印该数组的最大值、最小值、平均值和排序结果
4条回答 默认 最新
- 技术专家团-小桥流水 2023-01-01 09:33关注
用malloc动态申请内存,如果超出,再用realloc扩容。C语言运行结果:
代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> void bubbleSort(double* a, int n) { int i, j; double t; //冒泡排序 for (i = 0; i < n - 1; i++) { for (j = 0; j < n - 1 - i; j++) { if (a[j] > a[j + 1]) //从小到大排序,排序完成后,a[0]就是最小值,a[n-1]就是最大值 { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } } } //计算数据的总和 t = 0; for (i = 0; i < n; i++) t += a[i]; printf("最大值:%g\n", a[n - 1]); printf("最小值:%g\n", a[0]); printf("平均值:%g\n", t / n);//输出平均值 printf("排序结果:\n"); for (i = 0; i < n; i++) printf("%g ", a[i]); } int main() { int n = 0; char ch; int size = 1000; double* p = (double*)malloc(sizeof(double) * size); printf("请输入一组数据,以回车结束:\n"); while (1) { scanf("%lf", &p[n]); n++; if (n == size) { size += 1000; p = (double*)realloc(p, sizeof(double) * size);//扩容 } ch = getchar(); if (ch == '\n') break; } bubbleSort(p, n); //调用函数 //释放内存 free(p); p = 0; return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 三种调度算法报错 有实例
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败
- ¥20 java在应用程序里获取不到扬声器设备