/*关于指针数组记号,及指针函数参数,的自我编写代码练习*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUF 10
int i=0;
double average(double const *p1);
int main(void){
int count=BUF;
char *ps=NULL;//用以暂时储存输入的数据。
ps=malloc(10*sizeof(char));
double *pnumber=malloc(count*sizeof(double));//用以储存输入数据。
while(1){
fgets(ps,10,stdin);//获取数据
if(*ps=='\n'){
break; //检测到空行便结束输入,跳出无限循环。
}
pnumber[i++]=atof(ps);
if((i-1)==count){
count+=BUF;
realloc(pnumber,count*sizeof(double));//比较空间若不够增加内存。
}
}
printf("%lf",average(pnumber));//输出平均数。
free(ps);
free(pnumber);
return 0;
}
//计算平均数函数,以双精度浮点数指针为参数
double average(double const *p1){
double sum=0;
for(int j=1;j<=i;j++){
sum+=p1[j-1];
}
return (sum/(i));
}
网友评论