皮德常c++全套答案_第1页
皮德常c++全套答案_第2页
皮德常c++全套答案_第3页
免费预览已结束,剩余48页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章习题2-5、计算一个人一段时期的薪水,第1天1分钱,第2天2分钱,每天翻倍。 要求用户输入天数(输入检验),列表显示每天的薪水,及薪水总和(输出人 民币的单位:“元”)。#in clude<iostream>using n amespace std;void mai n()int daynum;float daypay, paysum=0;docoutvv"请输入天数(>1整数):" cin> >da ynum;while(daynumv=1);/ 有效性检验for(i nt i=1; i<=da ynum; i+) daypay二

2、i/100.0;coutvv"第"<<i<<"天薪水:"vvdaypay <<"元t" if(i%2=0)coutvve ndl;paysum+=daypay;/列表输出每天薪水,计算总薪水coutvve ndl;coutvv"薪水总和:"vvpaysumvv"元"/ 输出总薪水2-7、用 for 循环计算 1/30 + 2/29+3/28+30/1。#in cludeviostream>using n amespace std;void mai n()

3、int i;float sum=0;for(i=1;iv=30;i+)sum+=i/float(31-i);coutvv"sum="vvsum;2-8、用循环语句输出如下图形AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA #in clude<iostream>using n amespace std; void mai n()int i,j,k;for(i=0;i<=3;i+) for(j=0;j<i;j+)cout«''for(k=7-i;k>i;k-) coutvv'A: cout«

4、;e ndl; for(i=1;i<=3;i+)for(j=3;j>i;j-)cout«''for(k=0;k<2*i+1;k+) / coutvv'A'cout«e ndl;/控制行/控制每行输出的''/控制每行输出的/控制每行输出的'' 控制每行输出的的数目'A'的数目的数目'A'的数目2-9、采用循环结构计算公式s的前30项和s=2/1+3/2+5/3+ #in clude<iostream>using n amespace std;#defi

5、 ne N 30void mai n() int i;float a1,a2,sum=0,temp; a1分子,a2 分母for(a1=2,a2=1,sum=0,i=1;i<二N;i+)sum+=a1/a2;temp=a1; a仁a1+a2; a2=temp; /为下一次求和做准备cout<<"nsum is : "<<sum;2- 10、求sum二a+aa+aaa, a和n由键盘输入。#in clude<iostream>using n amespace std;void mai n()int i,a, n;long sum,te

6、mp;sum=temp=0;cout<<"nEn ter a and n:"cin> >a> >n;for(i=1;i< 二n ;i+) temp=a+temp*10;sum+=temp;cout«"the result is : "<<sum;2-11、输入一行字符,以回车结束,分别统计其中出现的大写英文字母、小写 英文字母、数字字符、空格和其他字符出现的次数。#in clude<iostream>using n amespace std;void mai n() char c

7、;int lletters=O,uletters=O,spaces=O,digits=O,others=O;cout<<"Please en ter the characters:' n"while(c=c in .get()!='n')if(c>='a'&&c<='z')lletters+;else if(c>='A'&&c<='Z') uletters+;else if(c='')spaces+;el

8、se if(c>='0'&&c<='9') digits+;elseothers+;cout<<"the nu mber of lower case letters: "<<lletters<<e ndl; cout<<"the nu mber of upper case letters: "<<uletters<<e ndl; cout<<"the nu mber of digits: "&

9、lt;<digits<<e ndl;cout<<"the nu mber of spaces: "<<spaces<<e ndl; cout<<"the nu mber of others: "<<others;第3章习题:3-1、编写求阶乘及组合的函数,在主函数调用求组合的函数。#in clude<iostream>using n amespace std;long fac(i nt n)long fac=1;for(i nt i=2;i<=n ;i+)fa

10、c*=i;retur n fac;long comb(i nt n, int k)retur n fac(n )/(fac(k)*fac( n-k);void mai n() int n,k;cout«"Please in put the n and the k:"cin>>n> >k;cout«"the comb in atio n nu mber of n and k: "<<comb (n ,k);3-2、编写函数计算ex的近似值,在主函数中输入x及精度10-9 (要求最后一项 小于10-9

11、)。#in clude<iostream>#in clude<cmath>using n amespace std;double ex(double x,double eps)int i=1;double e=1,t=1;while(fabs(t)>eps) t=t*x/i;e=e+t;i+;retur n(e);void mai n() double x,eps;cout<<"Please inout x and eps:n"cin> >x>>eps;cout«"e*x:n"&

12、lt; <ex(x,eps);3-3、编写被调函数,求出1000以内 素数,在主函数中调用函数并输出素数, 每行输出5个素数。#in clude<iostream>#i ncludevioma nip>#in clude<cmath>using n amespace std;void PrimeNum(int n=1000) int i, j, k, flg=1, num=O; for(i=2;i <n ;i+)k二sqrt(i);for(j=2;j<=k;j+) if(i%j=O)flg=0;if(flg=1) cout<<setw

13、(5)vvi; nu m+;if(n um%5=0) cout«e ndl;flg=1;void mai n() PrimeNum();3-4、输出1000以内的所有完数。#in clude<iostream>#i ncludevioma nip>using n amespace std;void print(int n)/ 输出因子 int i;for(i=1;i<=n/2;i+)if(n %i=0) cout<<setw(5)<<i; cout«e ndl;void wan shu(i nt n) int i;int a,

14、s=0; a=n/2;for(i=1;i<=a;i+)if(n %i=0) s+=i;if(s=二n)coutv <n<<" its factors are:"print(n);void mai n() int i;for(i=1;iv=1000;i+)wan shu(i);3- 5、编写函数(递归和非递归)求两个整数的最大公约数和最小公倍数。#in clude<iostream>using n amespace std;int gcd(i nt x,i nt y) int r;r=x%y;while (r!=0) x=y; y=r; r

15、=x%y; retur n(y);/int gcd(i nt a, int b)if(a%b=0)/return b;/else/ return gcd(b, a%b);/int gbs(i nt x,i nt y) int bs,ys;ys=gcd(x,y);bs=x*y/ys;retur n bs;void mai n() int x,y,g,bs;cout<<"Enter two number: n "cin> >x>>y; g=gcd(x,y);bs二gbs(x,y);cout«"the gcd: "

16、vvgvve ndl; cout«"the gbs: "<<bs;3-6、递归函数反序输出数位。#in clude<iostream>using n amespace std;void rev(int x) /* 反向输出 */if(x>0)cout<<x%10;rev(x/10);void mai n() int x;cout«"Please in put an in teger:n" cin> >x;cout«"reverse:"if(x<0

17、) coutvv"-"x=-x; rev(x);3-8、递归函数实现十进制到二进制转换。#in clude<iostream>using n amespace std;void fun (i nt i)if(i > 1)fun (i/2);cout<<i%2;void mai n() int n;cout«"Please in put the decimal nu mber:" cin>>n;cout«"the binary nu mber:" fun(n);3-9、编写函

18、数输出图形。(略)3-10、编写min函数模板和max函数模板。#in clude <iostream>using n amespace std;templatevclass T>T mi n(T &var1,T &va if(var1<var2)return(var1);elsereturn(var2);template<class T>T max(T &var1,T &va r2) if(var1<var2)return(var2);elsereturn(var1);void mai n(void)int userI

19、 nt1,userl nt2;float userFloat1,userFloat2;char userChar1,userChar2;cout<<"Please in put two in tegar nu mbers:" cin> >userl nt1>>userl nt2;cout<<"the min is: "< <min( userl nt1,userl nt2)«e ndl; cout<<"the max is: "<<max(u

20、serl nt1,userl nt2)<<e ndl;cout«"Please in put two float nu mbers:"cin> >userFloat1>>userFloat2;cout<<"the min is: "<<mi n(userFloat1,userFloat2)«e ndl; cout<<"the max is: "<<max(userFloat1,userFloat2)<<e ndl;cou

21、t<<"Please in put two char nu mbers:"cin> >userChar1>>userChar2;cout<<"the min is: "< <min( userChar1,userChar2)«e ndl; cout<<"the max is: "<<max(userChar1,userChar2)<<e ndl;3- 11、绝对值函数模板。#in clude <iostream>usi

22、ng n amespace std; templatevclass T>T Abs(c onst T var) if(var<0)return(-var);elsereturn(var);void mai n(void)/测试整型量求绝对值int test 1=12,test2=-34;的绝对值为:"<<Abs(test1)vve ndl; 的绝对值为:"<<Abs(tes t2)<<e ndl;的绝对值为:"<<Abs(tes t3)<<e ndl; 的绝对值为:"<<

23、Abs(test4)vve ndl;cout«"测试整型量:"<<endl; cout<<"test 1="<<test1<<"ttest1 cout<<"test2="<<test2<<"ttest2/测试浮点型量求绝对值float test3=12.67f,test4=-34.43f; coutvv"测试浮点型量:"<<endl; cout<<"test3=&quo

24、t;<<test3<<"ttest3 cout<<"test4="<<test4<<"ttest4第4章习题:4- 1、编程实现由用户输入10个数据到数组,输出数组中的最大值和最小值及 其相应的下标。#in elude <iostream>using n amespace std;#defi ne N 10void mai n() int i,arrayN,max,maxid,mi n, mi nid;for(i=0;i<N;i+)cin> >arrayi;max=

25、min二 array0;maxid=mi nid=0;for(i=1;i<N;i+)if(arrayi>max)max=arrayi; maxid=i; if(arrayi<mi n)min二 arrayi; mi nid二i;cout<<"the max of the array is "<<max<<e ndl;cout<<"the in dex of the max is "<<maxid<<e ndl;cout<<"the min of

26、 the array is "vvminvven dl; cout<<"the in dex of the min is "vvmini d<<e ndl;4-2、编写函数实现将字符串中每个单词的首字母大写。#in clude <iostream>using n amespace std;void Words( char str) int i;char ch=' '/存放前一字符for (i=0; stri!='0' i+ )if ( ch = ' ' && str

27、i != ' ') /单词数首字母if(stri>='a'&&stri<='z')stri-=32;ch = stri;void mai n() char str100; cout«"Please in put a stri ng:"cin. getli ne(str,100);Words(str);cout«str;4-4、编程实现线性查找账号,账号由用户输入,若找到,则输出合法信息,否 则输出非法信息。#in clude<iostream>using n ames

28、pace std;#defi ne arrSize 5int searchList(i nt list , i nt nu mElems, int value)for(i nt i=0; i < nu mElems; i+ )if( value = listi)return i;retur n -1;void mai n () int testsarrSize = 5658845, 4562555, 3852085, 4520125, 5552012; int result, x;coutvv"请输入账号:"cin> >x;result = searchL

29、ist(tests, arrSize, x);if ( result = -1 )cout << x<< " 为非法账号。"<< endl;elsecout << x<< " 为合法账号。" 4-5、采用二分查找实现上述程序。#in clude <iostream>#i nclude vioma nip> using n amespace std; #defi ne arrSize 5void selectio nSort(i nt a , i nt n)/ 选择排序 int

30、i, j, t, mi nln dex;for(i=0; i<n-1; i+)minln dex=i;for(j=i+1; j< n; j+)if(aj<ami nln dex) mi nln dex=j;if( mi nln dex != i )t=a minln dex;ami nln dex=ai;ai=t;/二分查找函数,在a数组中查找valueint bin arySearch(i nt a , i nt nu mElems, int value) int low=0, mid, hight=numElems-1;while (low<=hight)mid=(

31、low+hight)/2;if( value = amid )/查找成功return mid;else if( value < amid ) /位于数组的前一半hight=mid-1;elselow=mid+1; /位于数组的后一半retur n -1;void mai n () int testsarrSize = 5658845, 4562555, 3852085, 4520125, 5552012;int result, x;coutvv"请输入账号:"cin> >x;selectio nSort(tests,arrSize);result二bi n

32、arySearch(tests,arrSize, x);if ( result = -1 )cout << x<< " 为非法账号。"<< endl;elsecout << x<< " 为合法账号。"4- 6、寻找二维数组中的鞍点(该位置的元素是该行上的最大元素,同时是该 列上的最小元素)。#i nclude <iostream>#i nclude <ioma nip>using n amespace std;#defi ne M 3#defi ne N 4int q仁0

33、, q2=0; / 鞍点位置下标int andian(int aMN, int p1, int p2) int i, j, k, m, f, w, max;w=0;for(i=0; i<p1; i+)k=0;max=ai0;for(j=0; j<p2; j+)if(aij>max) k=j;max=aij; /第i行第k列为第i行的最大元素for(m=0, f=1; m<p1 &&f; m+)if(amk<max) f=0; /第i行第k列不是鞍点if(f)w=1;q1=i; q2=k; retur n w;void mai n()int aMN=

34、1,2,3,4,4,5,3,6,3,5,6,7;/*2,4,10,6,3,4,5,8,9,1,2,3;*/int w;w=a ndia n( a,M,N);if(w)cout«"该二维数组存在鞍点:"v<aq1q2v<endl;cout«"其行标为:"vvq1<v"t 列标为:"<<q2;else coutvv"该二维数组没有鞍点。"4-7、编写函数求一个4X二维数组中周边元素的和。#i nclude <iostream>using n amespace

35、 std;int arrSum(i nt arr4)int i,j,sum=0;for(i=0;i<4;i+)sum+=arri0;sum+=arri3;for(j=0;j<4;j+)sum+=arr0j;sum+=arr3j;sum-二arr00+arr30+arr03+arr33;retur n sum;void mai n()int a44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16; coutvv"该二维数组的周边元素之和为:"arrSum(a);4-8、编写函数求二维数组两条对角线元素之和。#i nclude <

36、iostream>using n amespace std;#defi ne N 4int sum(int aN)int i,s=0;for(i=0;i<N;i+)s二s+aii+aiN-i-1;retur n(s);void mai n()int i,j,aNN;coutvv"输入二维数组元素:n"for (i=0;i<N;i+)for(j=0;j<N;j+) coutvv"第"vvivv"行第"vvjvv"列元素:"ci n>>aij;coutvv"两条对角线元素之

37、和:"vvsum(a);4-9、见例题。4-10、合并数组,合并前后的数组元素均按升序排列。#in cludeviostream>#i ncludevioma nip>using n amespace std;int merge(i nt a,i nt b,i nt c,i nt m,i nt n)int i=0, j=0, k=0;while(i<m&&j<n)if(ai<=bj) ck+=ai+;else ck+=bj+;while(ivm)ck+=ai+;while(j <n)ck+=bj+;retur n k;void ma

38、i n() int a=1,4,7,9, b=3,5,7,8,12,c20,i,k; k=merge(a,b,c,4,5); cout<<"array a:n"for(i=0;i<4;i+)cout<<setw(8)<<ai;cout<<"narray b:n"for(i=0;i<5;i+) cout<<setw(8)<<bi;cout<<"nm erged array c:n"for(i=0;i<k;i+) cout<<

39、setw(8)<<ci;第5章习题:5- 1、同4-2,形参换成指针即可。5-3、求一组整数的中值。#in clude<iostream>#i ncludevioma nip>using n amespace std;void selectio nSort(i nt *a, i nt n)/ 选择排序 int i, j, t, mi nln dex;for(i=0; i<n-1; i+)minln dex=i;for(j=i+1; j< n; j+)if(aj<ami nln dex)mi nln dex=j;if( mi nln dex !=

40、i )t=a minln dex;ami nln dex=ai;ai=t;int mean (i nt *a,i nt n)int mean ,tmp;selectio nSort(a, n);tmp=n/2;if(n %2=0)mean二 atmp+atmp-1;else mean二 atmp;retur n mean;void mai n()int a100, num,i;cout«"输入整数个数(<100):"cin>>num;cout«"输入"<<num<<"个整数:n&qu

41、ot;for(i=0;i< nu m;i+)cin> >ai;cout«"这组整数的中值是:"<<mean(a,num);5-4、编写一个程序求一组正整数的模。在统计学中,模代表一组值中出现最频 繁的数,编写一个函数接受如下两个参数。1)整型数组。2)代表该数组元素个数的一个整数。该函数应当返回这组数的模,即返回该数组中出现最频繁的那个数。如果数组中没有模,即没有最频繁的数,那么就返回-1#in clude<iostream>#in clude<cmath>#i ncludevioma nip>#i nc

42、lude<ctime>using n amespace std;const int value=10;int Mol(int a,int value);int mai n() int avalue;sra nd(time(0);for(i nt i=0;i<10;i+)ai=ra nd()%10;coutv<aiv<setw(5);cout<<'n:int f=Mol(a,value);if(f=-1)cout«"没有模! "<<endl;elsecout«"该数组的模为:"

43、;vvfvvendl; retur n 0;int Mol(int a,int n)int *p=a,c=0;int bvalue;int *q=b;for(i nt i=0;i <n ;i+)for(i nt j二i+1,m=0;j <n ;j+)if(*(p+i)=*(p+j)m+;*(b+i)=m;for(int l=O;l<n;l+)if(*(q+l)>*(q+c)c=l;for(i nt m=0;m <n ;m+)if(*(q+m)=*(q+c)&&m!=c)return -1;return *(p+c);5-5、在主函数中首先输入一个整

44、数到变量n中,然后输入n个整数到数组中,调用函数exchange(),完成将数组中的最小值与第0个元素对调,将数组中的最 大值与最后一个元素对调,在主函数中调用函数print()输出调换前和调换后的 数组。要求被调函数exchange和print的参数均为1)数组名2)数组元素的 个数。#in clude<iostream>#i ncludevioma nip>using n amespace std;void excha nge(i nt a,i nt value);void pr in t(i nt a,i nt value);int mai n()int n;cin&g

45、t;>n;int a100;for(i nt i=0;i <n ;i+)cin> >ai;cout«"调换前为:"prin t(a, n);excha nge(a ,n);coutvv"调换后为:"prin t(a, n);retur n 0;void pr in t(i nt a,i nt value)int *p=a,i;for(i=0;i<value;i+,p+)cout<<setw(4)vv*p;cout«e ndl;void excha nge(i nt a,i nt value)i

46、nt i,m,*p=a,t,*j=a;for(i=1,m=0;i<value;i+)(am<ai)?m=m:m=i;t=*(p+m);*(p+m)=*p;*p=t;for(i=0,m=0;i<value;i+)(am>ai)?m=m:m=i;t=*(j+m);*(j+m)=*(j+value-1);*(j+value-1)=t;5-6、在主函数中输入十个整数到数组中,调用函数move()完成将数组元素循环移动k位(要求函数参数为1、数组名2、数组元素个数3、循环移动的位数k) 当k>0时,实现循环右移;当k<0时,实现循环左移。循环右移一位的意义是: 将数组

47、全体元素向右移动一个元素的位置,原数组最后一个元素移动到数组的 最前面,即第0个元素位置。提示:当k<0时,转换成等价的循环右移。调用 函数print()输出移动前和移动后的全体数组元素。#in clude<iostream>#i ncludevioma nip>using n amespace std;void move(i nt x,i nt value,i nt k);void pr in t(i nt x,i nt value);int mai n()int x10,i;for(i=0;i<10;i+)cin> >xi;coutvv"

48、移动前数组为:”;prin t(x,1O);move(x,10,3);coutvv"移动后数组为:"prin t(x,10);retur n 0;void pr in t(i nt x,i nt value)for(i nt i=O;i<value;i+)coutvvsetw(5)vvxi;cout<<e ndl;strl中的下(要求被调函5-7、在主函数中输入一个字符串到字符数组 str1中,调用函数将 标为奇数的字符取出,构成一个新的字符串放入字符数组str2中数参数为str1和str2),在主函数中输出结果字符串str2.#in clude<i

49、ostream> using n amespace std;void n ewstr(char str1,char str2);static int m=0;void mai n()char str11OO;char str2100;coutvv"请输入一个字符串:"<<endl;ci n.getli ne(str1,100);n ewstr(str1,str2);coutvv"新字符串为:"<<endl; cout<<str2vve ndl;void n ewstr(char str1,char str2)ch

50、ar *p,*q;q=str1;p=str2;int i=0;for(i=0;i<100;i+)if(*(q+i)='0')*(p+i/2)+1)='0:break;else if(i%2!=0)*(p+i/2)=*(q+i);5-8、编写一个函数palin()用来检查一个字符串是否是正向拼写与反向拼写都 一样的“迴文”(palindromia ).如“ MADAM是一个迴文。若放宽要求,即忽 略大小写字母的区别、忽略空格及标点符号等,则像“Madam,l'm Adam”之类的短语也可视为迴文。编程要求:1) 在主函数中输入字符串。2)将字符串首指针作为函

51、数参数传递到函数pali n()中。当字符串是迴文时,要求函数palin()返回true,否则返回false 。3)若是迴文,在主函数中输出yes。若不是迴文,在主函数中输出no.#in clude <iostream>using n amespace std;bool pali n( char a);int mai n()char a100;cout«"请输入一个字符串:"<<endl;cin> >a;if(pali n(a)cout<<"yes"<<e ndl;elsecout&l

52、t; v"no" <<e ndl;retur n 0;bool pali n( char a)char *p1=a,*p2;int n,i;for(i=0, n=0;i<100;i+)if(ai>='a'&&ai<='Z')*(p1+n)=ai;n+;for(p2=p1+ n;p1<p2;)if(*p 1=*p2)p1+;p2-;if(p2-p 1=1|p2-p1=0)return true;elsereturn false;5-10、有n个人围成一圈,顺序排号,顺序号是1、2、3、n。从第

53、1个人开始报号,凡报到m的人退出圈子,问最后留下的人是第几号。要求在主函数输入n和m,将数组a以及n、m作为参数传递给函数count(),在 该函数中依次输出退出圈子的人的序号,最后输出的就是留下者的序号。#in clude<iostream>using n amespace std;void coun t(i nt n ,i nt m,i nt a);int mai n()int n,m;cout«"输入 n:"<<endl; cin>>n;cout«"输入 m:"<<endl; ci

54、n>>m;int a100;for(i nt i=0;i <n ;i+) ai=i+1;count(n ,m,a); retur n 0;void coun t(i nt n ,i nt m,i nt a)int i,k=0,t=0,*p=a;for(i=0;i <n ;i+)pi=i+1;while (t< n-1)for(p=a;p<a+n;p+) if(*p!=O) k+;if(k=m)k=0; cout<<*p<<"" *p=0;t+;p=a;while(*p=0)p+;cout<<*p<

55、<e ndl; 6-1、假设每个学生信息包括学号、姓名和 3门课程的考试分数。从键盘输入10 个学生的数据,采用结构体数组数据的存储,程序实现如下功能:1) 输出三门课的平均成绩。2) 输出三门功课分数分别最高的学生的信息。3) 按总分对这10个学生从高到低排序,并输出排序结果4) 输出平均分高于80分那些学生的信息。#in elude <iostream>#i nclude <ioma nip>#in elude <cstdlib>using n amespace std;struct stude ntint ID;char n ame20;doub

56、le score3;void in put(stude nt*,i nt n);double average(stude nt*,i nt n);void prin t(stude nt*,i nt n);void sort(stude nt*,i nt n);const int stude ntNumber=10;int mai n() stude nt stud10;in put(stud,stude ntNumber);prin t(stud,stude ntNumber);/sort(stud,stude ntNumber);retur n 0;/*void in put(stude

57、nt *ps,i nt n)for(i nt i=0;i <n ;i+)cin> >ps->ID;cin> >ps->n ame;cin> >ps->score0>>ps->score1>>ps->score2; ps+;void average(stude nt *ps,i nt n)int aver1=0,aver2=0,aver3=0;for(i nt i=0;i <n ;i+)aver1+=ps->score0;aver2+=ps->score1;aver3+=ps->

58、;score2; ps+;averl/ 二num;aver2/二num;aver3/二num;"vvaverlvve ndl;"v<aver2v<e ndl;"v<aver3v<e ndl;coutvv"第一门课平均成绩为coutvv"第二门课平均成绩为coutvv"第三门课平均成绩为 void max(stude nt *ps,i nt n)int a=0,b=0,c=0;for(int i=1;i<n;i+)if(ps+i)->score0>(ps+a)->score0) a=i;i

59、f( (ps+i)->score1>(ps+b)->score1) b=i;if(ps+i)->score2>(ps+c)->score2) c=i;coutvv"第一门课最高分的信息:";print(ps+a),1);coutvv"第二门课最高分的信息:";print(ps+b),1);coutvv"第三门课最高分的信息:";print(ps+c),1);6-4、编写程序reverse。逆转链表,即整理链表各结点的指向,将原链表头变 成新链表尾,将原链表尾变成头。函数原型为: void rever

60、se(NODE *head);#in clude <iostream>#i nclude <ioma nip>#in clude <cstdlib>using n amespace std;#define LEN sizeof(NODE)typedef struct nodeint data;node *n ext;NODE;void reverse (node *head)node *p,*temp1,*temp2;p=head->n ext;temp1=p->n ext;temp2=temp1- >n ext;p-> next二N

61、ULL;while(temp2!=NULL)temp1- >n ext=p;p=temp1;temp1=temp2;temp2=temp1- >n ext;temp1- >n ext=p;head->n ext=temp1;NODE *i nitlist()NODE *head;head=(NODE *)malloc(sizeof(NODE);head-> next二NULL;retur n head;NODE *create() NODE *p1,*p2,*head;int a;p2=head=in itlist();cin> >a;while(a!=-1)p1= (NODE*)malloc(sizeof(NODE); p1->data=a;p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论