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
int *create(int n){
return (int *)malloc(sizeof(int)*n);
}
void cal(int *array, int size){
float sum=0.0,av;
int max=*array,min=10000;
for(int i=0;i<size;i++){
scanf("%d",(array+i));
sum+=*(array+i);
if(*(array+i)<min)
min=*(array+i);
if(*(array+i)>max)
max=*(array+i);
}
av=sum/size;
printf("%.0f\n%.2f\n%d\n%d\n",sum,av,max,min);
}
本文介绍如何使用C语言实现动态数组的创建与计算功能,包括求和、平均值、最大值与最小值的计算。文章提供了两个核心函数的实现:create()用于创建动态数组,cal()用于读取输入并完成各项计算。
1006

被折叠的 条评论
为什么被折叠?



