首先要说的是此题有悖编程伏旅思想——计算n个整数的平缺禅凳均值是一件很容易袭山的事,连数组都用不着,题目却不但要数组而且还要动态数组,这样舍近求远并不可取。
#include "stdio.h"
#include
int main(int argc,char *argv[]){
int n,*p,i,sum;
while(1){
printf("Please enter n(int 0<=n)...\n");
if(scanf("%d",&n)!=1 || n<0){
printf("Input error, exit...\n");
return 0;
}
if(n==0)
break;
if((p=(int *)malloc(sizeof(int)*n))==NULL){
printf("Application memory failure...\n");
return 0;
}
printf("Please enter %d integers...\n",n);
for(sum=i=0;ifree(p);
printf("The average are %g\n",sum/(n+0.0));
}
return 0;
}
运行样例:
C语言实现,按以上输入输出格式要求,循环统计n个整数的平均值,参考代码如下:
#include
#include
int main()
{
int *a,i,n,sum;
while(1){
sum=0;
printf("输入整数:");
芦并 scanf("%d",&n);
if(n<1)return 0;
a=(int *)malloc(n*sizeof(int));
行升 if(a==NULL) return 1;
printf("输入%d个数字:",n);
for(i=0;iscanf("%d",&a[i]);
档哗老 for(i=0;isum+=a[i];
printf("平均值为:%g\n",(float)sum/n);
free(a);
}
return 0;
}