c语言编程题在主函数中定义一个一维数组,把若干个人(人数自?

2025-03-09 07:50:06
推荐回答(2个)
回答1:

本例建立一个函数fun,有三个数组参数,其中h[],low[]两个数组用来分别存储高于均值的成绩和低于均值的成绩,并返回高于平均成绩的分数的个数。

代码如下

#include 

int n;

float sum=0,average;

float fun(float num[],float h[],float low[]);

int main()

{int i;

do 

{printf("请输入人数:");scanf("%d",&n);}

while(n<=0);

float num[n],h[n],low[n];

for (i=0;i

{scanf("%f",&num[i]);

sum+=num[i];

}

for(i=0;i

printf("\n总分:%.1f\n",sum);

average=sum/n;

printf("高于平均成绩%.1f的分数\n",average);

for (i=0;i

printf("%.1f\t",h[i]);

printf("\n低于平均成绩%.1f的分数\n",average);

for (i=0;i<(n-fun(num,h,low));i++)

printf("%.1f\t",low[i]);

return 0;

}

float fun(float num[],float h[],float low[])

{int i,c=0,d=0;               //c,d为计数器

for (i=0;i

if (num[i]>average)       {h[c]=num[i];c++;}   //大于均值的成绩送入数组h[]

else {low[d]=num[i];d++;}         //低于均值的成绩送入数组low[]

}

return c;

}

回答2:

#include

#define N 100

int fun(float *a,float *b,float *c,int n) { int i,n1,n2; float av;

  av=0; for ( i=0;i

  av/=n; n1=n2=0;

  for ( i=0;iav ) { b[n1]=a[i]; n1++; } else { c[n2]=a[i]; n2++; }

  return n1;

}

void main() { float a[N],b[N],c[N]; int i,na,nb,nc;

  scanf("%d",&na); for ( i=0;i

  nb=fun(a,b,c,na); nc=na-nb;

  for ( i=0;i

  for ( i=0;i

}