首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
N名学生的成绩己在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。 注意:部分源程序在文
N名学生的成绩己在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。 注意:部分源程序在文
admin
2019-09-02
31
问题
N名学生的成绩己在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。
例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#include<stdlib.h>
#define N 8
struct slist
{double s;
struct slist:*next:,
};
typedef struer slist;STREC;
double fun(STREC*h)
{
}
STREC*creat(double*s)
fSTREC*h,*p,*q;int i=0;
h=p=(STREC*)malloc(si zeof(STREC));p->s=0;
while(i<N)
{q=(STREC*)malloc(sizeof(STREC));
q->s=s
;i++;p->next=q;p=q;
}
p->next=;
return h;
}
outlist(STREC*h)
{SWREC*p;
p=h->next;printf("head");
do
{printf("->%4.1f",p->s);p=p->next;}
while(p!=0);
printf("\n\n");
}
main()
{double s[N]={85,76,69,85,91,72,64,87},ave;
void NONO();
STREC*h;
h=creat(s);outlist(h);
ave=fun(h);
printf("ave=%6.3f\n",ave);
NONO();
}
void NONO()
(/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE*in,*out;
int i,j; double s[N],ave;
STREC*h;
in=fopen("in.dat","r");
out=fopen("out.dat","w");
for(i=0 ; i<10; i++) {
for(j=0 ;j<N;j++)fscanf(in,"%1f,",&s[j]);
h=creat(s);
ave=fun(h);
fprintf(out,"%6.31f\n",ave);
}
fclose(in);
fclose(out); }
选项
答案
STREC*p=h->next;/*由于头结点中没有存放数据*/ double av=0.0; /*对计算成绩平均值的变量进行初始化*/ int n=0; while(p!=NULL){/*判断链表是否结束*/ av=av+p->s;/*对成绩进行累加*/ p=p->next;/*到下一个结点位置*/ n++; /*人数加1*/ } av/=n;/*计算成绩平均值*/ return av; /*返回成绩平均值*/
解析
(1)首先定义存放平均值的变量,并对其初始化。(2)在循环中,依次取链表中存放的成绩,并对其求和。(3)最后计算平均值,并返回值。
转载请注明原文地址:https://kaotiyun.com/show/dORp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下选项中不能用作C程序合法常量的是
可在C程序中用作用户标识符的一组标识符是
有以下程序#inchdeintfuna(inta,intb){returna+b;)intfunb(inta,intb){returna-b;}intsss(int(*t)(),intx,inty){retur
有以下程序#includevoidf(int*p,int*q);main(){intm=1,n=2,*r=&m;f(r,&n);printf("%d,%d",m,n);}voidf(int*p,int*q){p=
有以下程序#includemain(){inta=1,b=0;printf("%d,",b=a+B)printf("%d\n",a=2*B)}程序运行后的输出结果是
以下叙述中正确的是
在嵌套使用if语句时,C语言规定else总是
若以下选项中的变量a,b,y均已正确定义并赋值,则语法正确的switch语句是
有以下程序main(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",y);}程序运行后的输出结果是
随机试题
抵押与质押的主要区别有哪些?
引起猪肺疫的病原是
太阳直射北回归线是我国二十四节气中的()。
报检人需要补充证书内容时,应办理申请手续,填写《更改申请单》,并出具书面证明材料,说明要求补充材料。( )
下列条件中,不属于申请期货公司营业部负责人任职资格必须具备的条件的是()。
1996年召开的()全国公安会议提出:“必须坚持一手抓业务、一手抓队伍,按照‘抓班子、带队伍、促工作、保平安’的基本思路,依法治警、从严治警,全面推进公安队伍建设,尽快建设一支政治坚强、业务精通、作风过硬、纪律严明、秉公执法的公安队伍。”
有研究表明.副驾驶位置危险系数最高。有人提出,在汽车的副驾驶位置强制安装安全装置。对此,你怎么看?
据统计黑龙江省2013年城镇居民人均可支配收入19597元,比上年增长10.3%;城镇居民人均消费性支出14162元,增长9.1%。农村居民人均纯收入9634.1元,增长12.0%。农村居民人均生活消费支出6813.6元,增长19.2%。城镇居民人均住房建
剩余价值转化为利润,同时剩余价值率也就转化为利润率。资本主义利润率等于剩余价值与全部预付资本之比。它反映了
Thehigherthestandardoflivingandgreaterthenationalwealth,the______.
最新回复
(
0
)