- 要求定义一个函数实现对任意长度数组的排序的操作, 并计算最大值、最小值、平
均值。 在主程序中,定义一个数组,并通过 scanf 输入数组中每个元素的值,调用
该函数后,打印该数组的最大值、最小值、平均值和排序结果
关于c语言的问题函数
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 技术专家团-小桥流水 2023-01-12 21:38关注
排序函数参数用指针就可以。使用动态内存存储数组元素。
下面的代码通过malloc和realloc动态申请内存。读取数组元素时,以输入回车符结束。
排序采用冒泡排序算法。
运行结果如下:代码:
#include <stdio.h> #include <stdlib.h> //排序 void bubbleSort(double* p,int n) { int i,j; double t; for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(p[j] > p[j+1]) { t = p[j]; p[j] = p[j+1]; p[j+1]= t; } } } } int main() { double* p = 0; int n = 0; //数组元素个数 int i; int size = 10; double ave=0; char ch; p = (double*)malloc(sizeof(double)*size); while(1) { if(n == size) { size += 10; //大小扩充10 p = (double*)realloc(p,sizeof(double)*size);//重新分配内存 } scanf("%lf",&p[n]); ave += p[n]; //累加 n++; ch = getchar(); if(ch == '\n')//输入回车符结束 break; } bubbleSort(p,n); printf("最大值:%g\n",p[n-1]); printf("最小值:%g\n",p[0]); printf("平均值:%g\n",ave/n); printf("排序后的结果:\n"); for(i=0;i<n;i++) printf("%g ",p[i]); 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在应用程序里获取不到扬声器设备