C语言,数组,求和
长度为五的数组,1,计算数组中五个数据的平均数,2,大于平均数的放在一个数组内,3,小于平均数的放在另一数组内,4,然后求五个数据之和,用函数调用的方法,输出这四个要求后...
长度为五的数组,1,计算数组中五个数据的平均数,2,大于平均数的放在一个数组内,3,小于平均数的放在另一数组内,4,然后求五个数据之和, 用函数调用的方法, 输出这四个要求后的数据,还有原数据
展开
3个回答
展开全部
供参考:
#include "stdio.h"
#define DIM 5
float avg(float* num,int dim)
{
float num_z=0.0;
for(int k=0;k<dim;k++)
num_z=num_z+num[k];
return num_z/dim;
}
void move(float* num_big,float* num_small,float* num_s,int dim,int* j)
{
float avg_tmp=avg(num_s,dim);
for(int k=0;k<dim;k++)
{
if(num_s[k]-avg_tmp>0)
{
*num_big=num_s[k];
num_big++;
(*j)++;
}
else
{
*num_small=num_s[k];
num_small++;
}
}
}
float sum(float* num,int dim)
{
float num_z=0.0;
for(int k=0;k<dim;k++)
num_z=num_z+num[k];
return num_z;
}
void main()
{
float number[DIM],big[DIM],small[DIM];
int i,j=0;
for(i=1;i<DIM+1;i++)
{
printf("输入第%d个数据:",i);
scanf("%f",&number[i-1]);
fflush(stdin);
}
printf("输入数据是:\n");
for(i=0;i<DIM;i++)
{
printf("%f\n",number[i]);
}
printf("平均数是:\n%f\n",avg(number,DIM));
move(big,small,number,DIM,&j);
printf("大于平均数的%d个数是:\n",j);
for(i=0;i<j;i++)printf("%f\n",big[i]);
printf("不大于平均数的%d个数是:\n",DIM-j);
for(i=0;i<DIM-j;i++)printf("%f\n",small[i]);
printf("总和是:\n%f\n",sum(number,DIM));
getchar();
}
#include "stdio.h"
#define DIM 5
float avg(float* num,int dim)
{
float num_z=0.0;
for(int k=0;k<dim;k++)
num_z=num_z+num[k];
return num_z/dim;
}
void move(float* num_big,float* num_small,float* num_s,int dim,int* j)
{
float avg_tmp=avg(num_s,dim);
for(int k=0;k<dim;k++)
{
if(num_s[k]-avg_tmp>0)
{
*num_big=num_s[k];
num_big++;
(*j)++;
}
else
{
*num_small=num_s[k];
num_small++;
}
}
}
float sum(float* num,int dim)
{
float num_z=0.0;
for(int k=0;k<dim;k++)
num_z=num_z+num[k];
return num_z;
}
void main()
{
float number[DIM],big[DIM],small[DIM];
int i,j=0;
for(i=1;i<DIM+1;i++)
{
printf("输入第%d个数据:",i);
scanf("%f",&number[i-1]);
fflush(stdin);
}
printf("输入数据是:\n");
for(i=0;i<DIM;i++)
{
printf("%f\n",number[i]);
}
printf("平均数是:\n%f\n",avg(number,DIM));
move(big,small,number,DIM,&j);
printf("大于平均数的%d个数是:\n",j);
for(i=0;i<j;i++)printf("%f\n",big[i]);
printf("不大于平均数的%d个数是:\n",DIM-j);
for(i=0;i<DIM-j;i++)printf("%f\n",small[i]);
printf("总和是:\n%f\n",sum(number,DIM));
getchar();
}
展开全部
a[5];
int i=4;float sum=0.0;
while(1+i--)
sum+=a[i];
=============
a[5];
float sum=0.0;
for(int i=0;i<5;i++)
sum+=a[i];
int i=4;float sum=0.0;
while(1+i--)
sum+=a[i];
=============
a[5];
float sum=0.0;
for(int i=0;i<5;i++)
sum+=a[i];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你告诉我难点在哪里,我帮你解决。
更多追问追答
追问
第二点,和第三点,小于和大于平均数哪里
追答
int[] a; //代表你要处理的数组
double average = average(a); //自己写一个对数组求平均数的average(int[ ] a)函数,返回平均数
int[] max;
compare(a, max, average); //自己写compare(int[]a, int[] max, double average),把a中比average大的数存到max中去。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询