首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意:部分源程序在文件PROGl.C中。 请勿改动
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意:部分源程序在文件PROGl.C中。 请勿改动
admin
2019-09-02
39
问题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#define N 8
typedef struct
{ char num[10];
double s;
}STREC;
double fun(STREC*a,STREC*b,int*n)
{
}
main()
{STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}};
STREC h[N],t ; FILE*out ;
int i,j,n;double ave;
ave=fun(s,h,&n);
printf("The%d student data which is lower than%7.3f:\n",n,ave);
for(i=0;i<n;i++)
printf("%s %4.1f\n",h
.num,h
.s);
printf("\n");
out=fopen("out.dat","w");
fprintf(out,"%d\n%7.3f\n",n,ave);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(h
.s>h[j].s){t=h
;h
=h[j];h[j]=t;}
for(i=0;i<n;i++)
fprintf(out,"%4.1f\n",h
.s);
fclose(out);}
选项
答案
int i; double ave=0.0; *n=0; for(i=0;i<N;i++)ave=ave+a[i].s; ave/=N;/*计算平均值*/ for(i=0;i<N;i++) if(a[i].s<ave){ /*把低于平均值的记录存放到b所指的数组中*/ b[n]=a[i]; (*n)++; /*人数加1*/) return ave; /*返回平均值*/
解析
该程序功能是把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
(1)首先,通过循环求总分,然后求得平均分。
(2)在循环中,进行平均分与每个成绩进行比较,并将满足条件的数据存入数组及对其进行累加。
转载请注明原文地址:https://kaotiyun.com/show/qORp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
给定程序MODI1.C中函数fun的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得
N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。注意
以下选项中表示一个合法的常量是(说明:符号口表示空格)
有以下程序#includevoidfun(char*a,char*b){while(*a==’*’)a++;while(*b=*a){b++;a++;}}main(){char*s="*a*b*",t[
软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是
有以下程序main(){unsignedchara=8,c;C=a>>3;printf("%d\n",c);}程序运行后的输出结果是
下列条件语句中,输出结果与其他语句不同的是
有下列程序:#includevoidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+1;j<n;j++)if(a[
关系R经过运算σA=B∧C>4∧D>3(R)的结果为()。
以下C语言用户标识符中,不合法的是
随机试题
下列关于无差异曲线的说法中,正确的有( )。
在西方美学史上,真正奠定悲剧理论基础的是古希腊的【】
下列关于M型受体的叙述,错误的是()
A.牙源性角化囊性瘤B.含牙囊肿C.鼻腭囊肿D.球状上颌囊肿E.腮裂囊肿缩余釉上皮剩余形成,包括1个未萌牙齿的牙冠
规模比较大的个人独资企业的名称可以使用“公司”字样。()
甲公司与乙公司分别签订了两份合同:一是以货换货合同,甲公司的货物价值200万元,乙公司的货物价值150万元;二是采购合同,甲公司购买乙公司50万元货物,但因故合同未能兑现。甲公司应缴纳印花税()。
关于损失,下列说法中不正确的有()。
下列选项中属于扬州园林风格的是()。
JazzisakindofmusicthathasoftenbeencalledtheonlyartformtooriginateintheUnitedStates.Thehistoryof【B1】began
设某商品的需求函数为Q=160-2p,其中Q,P分别表示需求量和价格,如果该商品需求弹性的绝对值等于1,则该商品的价格是().
最新回复
(
0
)