C语言:设有m个人的成绩存放在score数组中,请编写函数,将高于平均分的人数作为函数值返回......
设有m个人的成绩存放在score数组中,请编写函数,将高于平均分的人数作为函数值返回,将高于平均分的分数存放在up所指的数组中。书写格式完整规范一点,且注意一下题目的各关...
设有m个人的成绩存放在score数组中,请编写函数,将高于平均分的人数作为函数值返回,将高于平均分的分数存放在up所指的数组中。
书写格式完整规范一点,且注意一下题目的各关键字眼 展开
书写格式完整规范一点,且注意一下题目的各关键字眼 展开
4个回答
展开全部
#include<stdio.h>
int deal(int a[],int m,int up[]);
int main()
{
int i,j,count=0;
int score[]={1,2,3,4,5,6,7,8,9,0,10},up[100]={-1};
count=deal(score,11,up);
printf("%d\n",count);
for(i=0;i<count;i++)
printf("%-4d",up[i]);
return 0;
}
int deal(int a[],int m,int up[])
{
double sum=0,aver;
int i=0,count=0,j=0;
while(i<m)
{
sum=sum+a[i];
i++;
}
aver=sum*1.0/m;
for(i=0;i<m;i++)
{
if(a[i]>aver)
{
count++;
up[j]=a[i];
j++;
}
}
return count;
}
输出为:
5
6 7 8 9 10
但是数字要是大且多得话,就得考虑溢出了!
int deal(int a[],int m,int up[]);
int main()
{
int i,j,count=0;
int score[]={1,2,3,4,5,6,7,8,9,0,10},up[100]={-1};
count=deal(score,11,up);
printf("%d\n",count);
for(i=0;i<count;i++)
printf("%-4d",up[i]);
return 0;
}
int deal(int a[],int m,int up[])
{
double sum=0,aver;
int i=0,count=0,j=0;
while(i<m)
{
sum=sum+a[i];
i++;
}
aver=sum*1.0/m;
for(i=0;i<m;i++)
{
if(a[i]>aver)
{
count++;
up[j]=a[i];
j++;
}
}
return count;
}
输出为:
5
6 7 8 9 10
但是数字要是大且多得话,就得考虑溢出了!
展开全部
#include<stdio.h>
int main()
{
int m,i,j=0,a[100],*up,score[100],sum=0;
double aver;
up=a;
printf("输入m\n");
scanf("%d",&m);
printf("输入成绩(为整数)\n");
for(i=0;i<m;i++)
scanf("%d",&score[i]);
for(i=0;i<m;i++)
sum=sum+score[i];
aver=(double)sum/m;
printf("%lf\n",aver);
printf("高于平均分的有\n");
for(i=0;i<m;i++)
{
if(score[i]>aver)
{ a[j]=score[i];
printf("%d\n",a[j]);
j++;
}
}
return 0;
}
int main()
{
int m,i,j=0,a[100],*up,score[100],sum=0;
double aver;
up=a;
printf("输入m\n");
scanf("%d",&m);
printf("输入成绩(为整数)\n");
for(i=0;i<m;i++)
scanf("%d",&score[i]);
for(i=0;i<m;i++)
sum=sum+score[i];
aver=(double)sum/m;
printf("%lf\n",aver);
printf("高于平均分的有\n");
for(i=0;i<m;i++)
{
if(score[i]>aver)
{ a[j]=score[i];
printf("%d\n",a[j]);
j++;
}
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int highaverage(float s[],float stu[],int x);
int main()
{
int m,n;
float score[20],up[20];
printf("input M:");
scanf("%d",&m);
for(int i=0;i<m;i++)
{
printf("score[%d]=",i);
scanf("%f",&score[i]);
}
n=highaverage(score,up,m);
for(int j=0;j<n;j++)
printf("%3.1f ",up[j]);
return 0;
}
int highaverage(float s[],float stu[],int x)
{
float average,sum;
int num=0;
for(int i=0;i<x;i++)
{
sum+=s[i];
}
average=sum/x;
for(int j=0;j<x;j++)
{
if(s[j]>average)
{stu[num]=s[j];num++;}
}
return num;
}
int highaverage(float s[],float stu[],int x);
int main()
{
int m,n;
float score[20],up[20];
printf("input M:");
scanf("%d",&m);
for(int i=0;i<m;i++)
{
printf("score[%d]=",i);
scanf("%f",&score[i]);
}
n=highaverage(score,up,m);
for(int j=0;j<n;j++)
printf("%3.1f ",up[j]);
return 0;
}
int highaverage(float s[],float stu[],int x)
{
float average,sum;
int num=0;
for(int i=0;i<x;i++)
{
sum+=s[i];
}
average=sum/x;
for(int j=0;j<x;j++)
{
if(s[j]>average)
{stu[num]=s[j];num++;}
}
return num;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int upp[100];
int* up=upp;
int upaver(int s[],int* up,int m){
int i,cnt,aver,sum=0;
for(i=0;i<m;i++)
sum+=s[i];
aver = sum/m;
for(i=0;i<m;i++){
if(s[i]>aver){
*up++=s[i];
cnt++;
}
}
return cnt;
}
调用时,int n = upaver(score,up, m);
int* up=upp;
int upaver(int s[],int* up,int m){
int i,cnt,aver,sum=0;
for(i=0;i<m;i++)
sum+=s[i];
aver = sum/m;
for(i=0;i<m;i++){
if(s[i]>aver){
*up++=s[i];
cnt++;
}
}
return cnt;
}
调用时,int n = upaver(score,up, m);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询