6-2 实验10_2_动态内存分配函数_1 (100 分)
2021/12/25 7:07:10
本文主要是介绍6-2 实验10_2_动态内存分配函数_1 (100 分),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、设计函数int * create(int n) ;,根据整数n创建一个长度为n的整型动态一维数组,并返回动态数组第一个元素的地址。
2、设计函数 void cal(int * array, int size) ;该函数可计算array 所指向的动态一维数组中存储的size个整数的和及平均值,同时寻找其中的最大值、最小值。
输入共两行,第一行为一个整数n(0<n<100)。第二行为n个用空格分隔的整数。第一行在主函数中输入,第二行需在函数cal中输入,并存储在 array 所指向的动态一维数组中。
输出共5行,前四行依次为和、平均值(精确到小数点后两位)、最大值、最小值。最后一行按原样输出输入的那n个整数。前四行需在函数cal中输出,最后一行由主函数输出。
测试数据保证所有整数可以用int型存储。出题者存储浮点数时用的是 float。
函数接口定义一:
int * create(int n) ;
其中 n
为整数数组的长度; 函数需返回动态数组第一个元素的地址。如果没有获得内存则返回NULL。
函数接口定义二:
void cal(int * array, int size) ;
其中 array
和 size
都是用户传入的参数。 array
为整数数组的首地址; size
是数组中所存储的整数的个数。函数没有返回值。
裁判测试程序样例:
#include<stdio.h> #include<stdlib.h> int * create(int n) ; void cal(int * array, int size) ; int main() { int * array , n , i ; scanf( "%d", &n ); array = create(n) ; if ( array == NULL ) return -1 ; //这里的return是因为没有获得内存而直接结束程序。 cal( array, n) ; for ( i = 0 ; i < n ; i++ ) { printf("%d" , *(array+i) ) ; if ( i == n - 1 ) printf("\n") ; else printf(" ") ; } free(array) ; return 0; } /* 请在这里填写答案 */
输入样例:
10 1 2 3 4 5 6 7 8 9 10
输出样例:
55 5.50 10 1 1 2 3 4 5 6 7 8 9 10
代码实现:
#define INFINITE 2147483647 int * create(int n) { int *ptr=(int*)calloc(n,sizeof(int)); if(ptr!=NULL) return ptr; else return NULL; } void cal(int * array, int size) { int sum=0,i,max=array[0],min=INFINITE; float aver; for(i=0;i<size;i++) { scanf("%d",&(array[i])); sum+=array[i]; if(array[i]>max) max=array[i]; if(array[i]<min) min=array[i]; } aver=(float)sum/size; printf("%d\n%.2f\n%d\n%d\n",sum,aver,max,min); }
这篇关于6-2 实验10_2_动态内存分配函数_1 (100 分)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-01一个基于注解驱动的可视化的DDD架构-超越COLA的设计
- 2025-01-01PlantUML 时序图 基本例子
- 2025-01-01plantuml 信号时序图
- 2025-01-01聊聊springboot项目如何优雅进行数据校验
- 2024-12-31自由职业者效率提升指南:3个时间管理技巧搞定多个项目
- 2024-12-31适用于咨询行业的项目管理工具:提升跨团队协作和工作效率的最佳选择
- 2024-12-31高效协作的未来:2024年实时文档工具深度解析
- 2024-12-31商务谈判者的利器!哪 6 款办公软件能提升春节合作成功率?
- 2024-12-31小团队如何选择最实用的项目管理工具?高效协作与任务追踪指南
- 2024-12-31数据赋能,智慧养老:看板软件如何重塑养老服务生态