C程序第8章习题参考答案Word格式.docx
- 文档编号:20899959
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:19
- 大小:17.33KB
C程序第8章习题参考答案Word格式.docx
《C程序第8章习题参考答案Word格式.docx》由会员分享,可在线阅读,更多相关《C程序第8章习题参考答案Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
,&
a.re,&
a.im);
Inputcomplexnumb:
b.re,&
b.im);
res=sub(a,b);
res.re=%g,res.im=%g\n"
res.re,res.im);
}
COMPsub(COMPx,COMPy)
{COMPt;
t.re=x.re-y.re;
t.im=x.im-y.im;
returnt;
//xt080402.cpp
malloc.h>
{structnode
{intx;
structnode*next;
};
intn;
structnode*h=NULL,*p,*q;
Inputanumber:
"
%d"
n);
while(n)
{p=(structnode*)malloc(sizeof(structnode));
p->
x=n;
next=h;
if(!
h)
h=p;
elseif(n<
=h->
x)
{p->
}
else
{q=h;
while(q->
next&
&
n>
q->
next->
q=q->
next;
p->
next=q->
q->
next=p;
printf("
scanf("
}
p=h;
n=0;
while(p)
{printf("
%8d"
p->
x);
if(++n%6==0)
printf("
\n"
p=p->
//xt080403.cpp
stdlib.h>
#defineN3
structstud
{charid[5];
charname[20];
intscore[4];
doubleave;
voidinputscore(structstud*rec);
voidprintscore(structstud*s);
voidsum_ave(structstud*s);
{structstudst[N];
inti;
for(i=0;
i<
N;
i++)
inputscore(&
st[i]);
sum_ave(st);
printscore(st);
voidinputscore(structstud*rec)
{inti;
charin_buf[10];
gets(rec->
id);
name);
4;
{gets(in_buf);
rec->
score[i]=atoi(in_buf);
voidsum_ave(structstud*s)
{intk,i,sum;
for(k=0;
k<
k++)
{sum=0;
for(i=0;
sum+=s[k].score[i];
s[k].ave=sum/4;
voidprintscore(structstud*s)
{inti,k;
%s\t%s:
s[k].id,s[k].name);
%5d"
s[k].score[i]);
\t%f\n"
s[k].ave);
//xt080404.cpp
#defineN10
{voidreverse(intv[],intn);
intarr[N],i;
Inputtheelementofarray:
arr[i]);
reverse(arr,N);
arr[i]);
voidreverse(intv[],intn)
{structnode
structnode*h=NULL,*p;
n;
x=v[i];
h=p;
p;
i++,p=p->
next)
v[i]=p->
x;
//xt080405.cpp
structstu
{longid;
doubleshu,yu,ave;
{structstus[N];
voidsort(structstuv[],intn);
structstu*p;
for(p=s;
p<
s+N;
p++)
{scanf("
%ld,%lf,%lf"
(p->
id),&
shu),&
yu));
ave=(p->
shu+p->
yu)/2;
sort(s,N);
%ld--%5.2f%5.2f%5.2f\n"
id,p->
shu,p->
yu,p->
ave);
voidsort(structstuv[],intn)
{inti,j,k;
structstut;
n-1;
{k=i;
for(j=i+1;
j<
j++)
if((*(v+j)).ave>
(*(v+k)).ave)
k=j;
if(k!
=i)
t=*(v+i),*(v+i)=*(v+k),*(v+k)=t;
//xt080406.cpp
structlist
{intd;
structlist*link;
typedefstructlistL;
{L*createlist();
voidprintlist(L*h);
L*head;
head=createlist();
printlist(head);
L*createlist()
{L*p,*q,*ph;
inta;
ph=(L*)malloc(sizeof(L));
p=q=ph;
Inputtheelementoflist,-1forend.\n"
a);
while(a!
=-1)
{p=(L*)malloc(sizeof(L));
d=a;
q->
link=p;
q=p;
p->
link=NULL;
returnph;
voidprintlist(L*h)
{L*p=h->
link;
while(p!
=NULL)
d);
//xt080407.cpp
voidinsert(L*h,inta,intkey);
inta,k;
InputvalueforInsert.\n"
%d,%d"
a,&
k);
insert(head,a,k);
voidinsert(L*h,inta,intkey)
{L*s,*p,*q;
s=(L*)malloc(sizeof(L));
s->
d=key;
q=h;
p=h->
if(p==NULL)
{s->
link=s;
return;
while(p->
d!
=a&
p->
link!
{q=p;
if(p->
d==a)
else
//xt080408.cpp
voidreverselist(L*h);
reverselist(head);
voidreverselist(L*h)
{L*p,*q;
if(p!
{h->
do
{q=p->
link=h->
h->
p=q;
}while(p!
=NULL);
//xt080409.cpp
typedefstructnode
{intno;
structnode*next;
}NODE;
{intn,start,end,i,count;
NODE*h,*p,*tail,*newh;
Inputthenumberofpeople:
if(n<
=0)
nmustbe>
=0!
Inputthestartingpointandendingpoint:
start,&
end);
if(start<
1||end<
1)
Dataerror!
return;
newh=NULL;
tail=(NODE*)malloc(sizeof(NODE));
h=tail;
h->
no=n;
for(i=n-1;
i>
=1;
i--)
{p=(NODE*)malloc(sizeof(NODE));
no=i;
tail->
start=(start-1)%n;
start;
h=h->
for(count=n;
count>
1;
count--)
{start=(end-1)%count;
h=h->
if(newh)
{tail->
next=h->
tail=h->
{newh=h->
tail=newh;
h->
tail=h;
next=NULL;
count=0;
if(n==1)
newh=tail;
while(newh)
newh->
no);
newh=newh->
if(++count%6==0)
//xt080410.cpp
{floatcoef;
intexp;
{NODE*pa,*pb,*pc,*tail,*p,*q,*r;
floatcoef;
intexp,count;
pa=(NODE*)malloc(sizeof(NODE));
pa->
coef=0.0;
exp=-1;
/*建立多项式A的头节点*/
tail=pa;
do
输入多项式A中每一项的系数和指数(指数小于0时结束):
%f,%d"
coef,&
exp);
if(exp<
0)
break;
p=(NODE*)malloc(sizeof(NODE));
coef=coef;
exp=exp;
tail->
tail=p;
}while
(1);
pb=(NODE*)malloc(sizeof(NODE));
pb->
/*建立多项式B的头节点*/
tail=pb;
输入多项式B中每一项的系数和指数(指数小于0时结束):
if(pa->
next==NULL)
pc=pb;
elseif(pb->
pc=pa;
{pc=(NODE*)malloc(sizeof(NODE));
pc->
/*建立多项式C的头节点*/
tail=pc;
pa=pa->
while(pa)
{p=pb->
while(p)
{coef=pa->
coef*p->
coef;
exp=pa->
exp+p->
exp;
q=pc;
while(q->
{if(exp==q->
exp)
{q->
coef+=coef;
gotonext;
}
elseif(q->
exp>
break;
else
q=q->
}
r=(NODE*)malloc(sizeof(NODE));
r->
q->
next=r;
next:
p=p->
}
pa=pa->
p=pc;
{if(p->
coef==0.0)
free(q);
多项式A和多项式B的乘积为:
(%5.1f,%2d)"
coef,p->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 习题 参考答案