欢迎来到天天文库
浏览记录
ID:57417604
大小:71.00 KB
页数:14页
时间:2020-08-16
《实验14结构体-答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验14结构体[实验目的]1.掌握结构体和结构体数组的概念、定义及存储2.掌握结构体和结构体数组的基本操作及应用[DIY]1、调试下列程序(下列各程序中存在一些问题,通过调试发现问题,并加以修正,使其实现预期目标)[1.1]下列程序的功能为:应用结构体求多项式的值。多项式:anxn+an-1xn-1+an-2xn-2+…+a1x+a0,请纠正程序中存在的错误,使程序实现其功能。答案#include#includestructPoly{floata;/*系数*/intn;
2、/*指数*/};doublefpvalue(){structPolyp;doublepvalue=0;floatx;printf("输入多项式X:");scanf("%f",&x);printf("输入多项式系数(a)和指数(n,n=-10000,结束):");scanf("%f%d",&p.a,&p.n);while(p.n!=-10000){pvalue+=p.a*pow(x,p.n);scanf("%f%d",&p.a,&p.n);}returnpvalue;}[1.2]13个人围成一圈,
3、从第1个开始顺序报号1、2、3。凡报到“3”者退出圈子。找出最后留在圈子中的人原来的序号。[分析]本题算法通过一个循环队列来实现,用结构体数组构造一个循环队列,每个元素中定义一个成员存放下一个元素的下标。答案#include#defineN13structperson{intnumber;/*当前元素的序号*/intnextp;/*下一个元素的位置*/}link[N+1];/*定义N+1个元素的结构体数组存放N个人的信息*/main(){inti,count,h;for(i=1;i<=
4、N;i++)/*给循环队列初始化,下标从1开始*/{if(i==N)link[i].nextp=1;/*最后一人的下一个元素的位置为1即第一个元素,形成循环队列*/elselink[i].nextp=i+1;/*下一个人的序号*/link[i].number=i;/*每个人的序号与下标值相等*/}printf("");count=0;h=N;/*count统计出列的人数,h初始化为队列的最后一个元素*/printf("sequencethatpersonsleavetheircle:");whi
5、le(count6、intf("Thelastoneis");for(i=1;i<=N;i++)if(link[i].number)/*若元素值不为0,表示该元素没出列,即是留下来的元素*/printf("%3d",link[i].number);}2.程序填空(请填写适当的符号,使程序实现其功能)[2.1]下列函数findbook的功能为:在有n个元素的数组s中查找书名为a的书,若找到,函数返回数组下标,否则,函数返回0,请填写适当的符号或语句,使程序实现其功能。答案#include#inclu7、de"string.h"structbdata{intid;charbname[20];floatprice;};intfindbook(structbdatast[],intn,chars[]){inti;for(i=0;i8、大学化学",53.5,8,"大学语文",23.5,9,"哲学",13.5};charst[20];intindex;printf("请输入要查找书名:");gets(st);index=findbook(book,6,st);if(index)printf("书号:%d,书名:%s,价格:%f",book[index-1].id,book[index-1].bname,book[index-1].price);elseprintf("%
6、intf("Thelastoneis");for(i=1;i<=N;i++)if(link[i].number)/*若元素值不为0,表示该元素没出列,即是留下来的元素*/printf("%3d",link[i].number);}2.程序填空(请填写适当的符号,使程序实现其功能)[2.1]下列函数findbook的功能为:在有n个元素的数组s中查找书名为a的书,若找到,函数返回数组下标,否则,函数返回0,请填写适当的符号或语句,使程序实现其功能。答案#include#inclu
7、de"string.h"structbdata{intid;charbname[20];floatprice;};intfindbook(structbdatast[],intn,chars[]){inti;for(i=0;i8、大学化学",53.5,8,"大学语文",23.5,9,"哲学",13.5};charst[20];intindex;printf("请输入要查找书名:");gets(st);index=findbook(book,6,st);if(index)printf("书号:%d,书名:%s,价格:%f",book[index-1].id,book[index-1].bname,book[index-1].price);elseprintf("%
8、大学化学",53.5,8,"大学语文",23.5,9,"哲学",13.5};charst[20];intindex;printf("请输入要查找书名:");gets(st);index=findbook(book,6,st);if(index)printf("书号:%d,书名:%s,价格:%f",book[index-1].id,book[index-1].bname,book[index-1].price);elseprintf("%
此文档下载收益归作者所有