一道C语言的题,不会做,麻烦大家帮下忙,感谢

2024-11-19 20:17:22
推荐回答(2个)
回答1:

首先要说的是此题有悖编程伏旅思想——计算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;i free(p);
printf("The average are %g\n",sum/(n+0.0));
}
return 0;
}

运行样例:

回答2:

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;i     scanf("%d",&a[i]);
    档哗老 for(i=0;i     sum+=a[i];
     printf("平均值为:%g\n",(float)sum/n);
     free(a);
}
    return 0;
}