


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/*1、打印出所有的"水仙花数"。所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。*/#include<iostream.h>voidmain()inti,a=0,b=0,c=0;for(i=100;i<1000;i+)a=i%10;b=i/10%10;c=i/100%10;if(a*a*a+b*b*b+c*c*c=i)cout<<"i="<<i<<endl;/*2、一个数如果恰好等于它的因子之和,这个数就称为&
2、quot;完数"。例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。编程序找出1000之内的所有完数,并按下面的格式输出其因子:6->1,2,3*/#include<iostream.h>voidmain()inti,j,sum=0,a50,k,t;for(i=1;i<=1000;i+)sum=0;for(j=1;j<i;j+)if(i%j=0)sum+=j;ak+=j;t=k;if(sum=i)cout<<i<<"->"for(k=0;k<t;k+)cout<
3、;<ak;if(k<t-1)cout<<”,”;cout<<endl;k=0;/*3、求Sn=a+aa+aaa+aaa之值,其中a是一个数字。例如:2+22+222+22222(此时n=5),n由键盘输入。*/#include<iostream.h>voidmain()doublea,sn=0.0,sum=0.0;intn,i;cout<<"pleaseinputanumber"cin>>a;cout<<"pleaseinputnnumber"cin>>n;s
4、n=a;sum=a;for(i=2;i<=n;i+)sum=sum*10+a;sn+=sum;cout<<"Sn="<<sn<<endl;/*4、一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过了多少米?第10次反弹多高?*/#include<iostream.h>voidmain()doubleh1=100,h2=100,sum=0.0;inti;for(i=1;i<=10;i+)sum+=h2;h1=h1/2.0;h2=h1*2;cout<<"
5、sum="<<sum<<""<<"h1="<<h1<<endl;/*5、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。*/#include<iostream.h>voidmain()(intnumber,i;number=1;for(i=10;i>1;i-)number=(numb
6、er+1)*2;cout<<"number="<<number<<endl;第4章函数/*1、写一函数用”气泡法"对输入的10个字符按由小到大的顺序排列。*/#include<iostream.h>voidmain()(inti,j,temp,a10;cout<<"pleaseinputtennumbers:n”;for(i=0;i<10;i+)cin>>ai;for(i=0;i<10;i+)/每循环一次确定数组中一个数的位置for(j=i+1;j<10;j+)/每
7、次循环对比一个数的大小(if(ai>aj)(temp=aj;aj=ai;ai=temp;cout<<"resortresult="for(i=0;i<10;i+)cout<<ai<<”"/*2、用递归方法求n阶勒让得多项式的值,递归公式为1(n=0)Pn(x)=x(n=1)(2n-1)*x*Pn-1(x)-(n-1)*Pn-2(x)/n(n>1)*/#include<iostream.h>doublefun(double,double);voidmain()(doublen,x,sum;cout&l
8、t;<"inputnandx"<<endl;cin>>n>>x;sum=fun(n,x);cout<<"P"<<n<<"("<<x<<")"<<"="<<sum<<endl;doublefun(doublen1,doublex1)(if(n1=0)return1;elseif(n1=1)returnx1;elseif(n1>1)return(2*n1-1
9、)*x1*fun(n1-1,x1)-(n1-1)*fun(n1-2,x1)/n1;/*3、编写一函数,由实参传来一字符串,统计此字符串中字母、数字、空格、和其它字符的个数,并在主函数中输入字符串以及输出上述结果。*/#include<iostream.h>voidjudge(chara);voidmain()(constintsize=100;charasize;cin.getline(a,size);judge(a);voidjudge(chara100)/判断字符类型(intletter=0,number=0,others=0,i=0;while(ai!='0'
10、)(if(ai>='a'&&ai<='z')|(ai>='A'&&ai<='z')letter+;/统计字母个数elseif(ai>='0'&&ai<='9')number+;/统计数字个数elseothers+;/统计其他数个数i+;cout<<"letter="<<letter<<"number="<<number<&l
11、t;"others="<<others<<endl;/*4、给出年、月、日,计算该日是该年的第几天。*/#include<iostream.h>intlead(int);voidmain()(intly,year,month,date,i,sum=0;cout<<"inputyear、month、date:"cin>>year>>month>>date;inta12=31,0,31,30,31,30,31,31,30,31,30,31;ly=lead(year);if(l
12、y=1)a1=29;/366夭elsea1=28;/365夭for(i=0;i<month-1;i+)/当前月之前所有月天数累加和sum+=ai;sum+=date;/加上当前月天数cout<<"你输入的日期是当年的第"<<sum<<"天"intlead(inty)/判断闰年(if(y%4=0&&y%100!=0)|(y%400=0)return1;/是闰年elsereturn0;/不是闰年/*5、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键
13、盘输入。*/#include<iostream.h>intcdivisor(int,int);intcmultiple(int,int,int);voidmain()(intx,y,d,m;cout<<"inputtwonumber:"cin>>x>>y;d=cdivisor(x,y);m=cmultiple(x,y,d);cout<<"commondivisoris"<<d<<endl<<"commonmultipleis"<<
14、;m<<endl;intcdivisor(intx1,inty1)/最大公约数(intr,temp;if(x1<y1)(temp=x1;x1=y1;y1=temp;while(x1%y1)/当较大数除以较小数余数等于0时,较小数为最大公约数(r=x1%y1;x1=y1;y1=r;returny1;)最小公倍数intcmultiple(intx2,inty2,intd1)/returnx2*y2/d1;/两数相乘结果除以它们的最大公约数为最小公倍数)/*6、写一函数,将两个字符串连接。*/#include<iostream.h>#include<string.
15、h>voidmain()constintsize=100;charasize,bsize;cout«"inputtwostring:"«endl;cin.getline(a,size);cin.getline(b,size);strcat(a,b);cout«"a="«a«endl;)/*7、写一函数,将一个字符串的元音字母复制到另一个字符串,然后输出。*/#include<iostream.h>#include<string.h>voidscpy(char*,char*);
16、voidmain()constintsize=100;charasize="Helloworld"charbsize="Net"cout«"a="«a«"b="«b«endl;scpy(a,b);cout«"a="«a«endl;)voidscpy(char*p,char*q)while(*q!='0')if(*q='a'|*q='A'|*q='e'|*
17、q='E'|*q='i'|*q=T|*q='o'|*q='O'|*q='u'|*q='U')*p+=*q;q+;)/*8、写一函数,输入一个四位数字,要求输出这4个数字字符,但每两个数字间空一空格。如输入1990,应输出"1990"o*/#include<iostream.h>#include<string.h>voidouts(chara);voidmain()constintsize=10;charasize;cin.getline(a,size);o
18、uts(a);voidouts(chara10)inti;if(strlen(a)<=4)for(i=0;i<4;i+)cout<<ai<<”"elsecout<<"inputerror."<<endl;第5章数组/*1、将一个数组中的值按逆序重新存放,例如,原来顺序为:a、b、c、doc、b、a。*/#include<iostream.h>voidback(char*);voidmain()chara50="abcdefg”;cout<<"a="&l
19、t;<a<<endl;back(a);#include<iostream.h>voidback(char*p)inti=0;while(*p!='0')p+;/把指针定位到字符串末尾i+;/统计字符个数cout<<"a="for(;i>0;i-)/逆序输出p-;cout<<*p;cout<<endl;/*2、打印出杨辉三角形(要求打印出前15行)。(杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。)*/#include<iostream
20、.h>voidtri(inta15);voidmain()inti,j,a1515;tri(a);cout<<"a="for(i=0;i<15;i+)/遍历整个数组for(j=0;j<=i;j+)cout<<aij;if(aij>=1&&aij<=9)/当输出个位数之后输出4个空格保持整齐cout<<""elseif(aij>=10&&aij<=99)/当输出十位数之后输出3个空格保持整齐cout<<""elsei
21、f(aij>=100&&aij<=999)/当输出百位数之后输出2个空格保持整齐cout<<""elsecout<<""/当输出百位数之后输出1个空格保持整齐cout<<endl<<""/每行输出结束后换行voidtri(inta1515)inti,j;for(i=0;i<15;i+)for(j=0;j<=i;j+)if(j=0|j=i)/三角形第一列和对角线被赋值为1aij=1;elseaij=ai-1j-1+ai-1j;/算出其余的数组元素/*
22、3、编一程序,将两个字符串连接起来,不要用strcat函数。*/#include<iostream.h>#include<string.h>voidscat(char*,char*);voidmain()constintsize=100;charasize="Hello”;charbsize="Bye”;cout<<"a="<<a<<"b="<<b<<endl;scat(a,b);cout<<"a="<<a&
23、lt;<"afterlinkaandb"<<endl;voidscat(char*p,char*q)while(*p!='0')/确定数组a的插入位置p+;while(*q!='0')*p=*q;p+;q+;/*4、打印”魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如:三阶魔方阵:8163 5792要求打印由1到n2的自然数构成的所有魔方阵。*/方法一:输出N介魔方阵,但每介只输出一种。#include<iostream.h>voidsquare(inta10,intk,intn)
24、;voidmain()intn,i,j,k,a1010=0;cout<<"inputanoddnumber:"<<endl;cin>>n;k=n/2;/确定第一个数列数square(a,k,n);for(i=0;i<n;i+)for(j=0;j<n;j+)cout<<"t"<<aij;cout<<endl;voidsquare(inta10,intk,intn)(inti,j;for(i=1,j=0;i<=n*n;i+,j-,k+)/n为阶数,从1开始给数组赋值(i
25、f(j<0&&k>=n)/当数组行列都越出范围时候,确定数组正确位置(j+=2;k-=1;elseif(j<0)/当数组行越出范围时候,确定数组正确位置j+=n;elseif(k>=n)/当数组列越出范围时候,确定数组正确位置k-=n;elseif(ajk!=0)/当数组原位置有数时候,确定数组位置(j+=2;k-=1;ajk=i;/方法二:输出N介魔方阵所有魔方阵。#include<string>#include<iomanip>#include<iostream>usingnamespacestd;voidprin
26、tA(int*p,intn)/输出这个n阶魔方阵(cout<<endl<<"下面是一个"<<n<<"阶魔方阵:"<<endl;inti,j;for(i=0;i<n;i+)(for(j=0;j<n;j+)(cout<<setw(4)<<pij;cout<<endl;cout<<endl<<endl;boolJudge(int*p,intn)/判断是否为n阶魔方阵inti,j,sum=0,NowSum=0;boolYesOrNo
27、=true;for(j=0;j<n;j+)/Z第一行总和(sum+=p0j;for(i=1;i<n;i+)/判断每行总和是否相等(NowSum=0;for(j=0;j<n;j+)(NowSum+=pij;if(NowSum!=sum)(YesOrNo=false;gotoEND;for(i=0;i<n;i+)/Z每列是否相等(NowSum=0;for(j=0;j<n;j+)(NowSum+=pji;if(NowSum!=sum)(YesOrNo=false;gotoEND;NowSum=0;for(i=0,j=0;i<n,j<n;i+,j+)/主对角线
28、是否相等(NowSum+=pij;if(NowSum!=sum)(YesOrNo=false;gotoEND;NowSum=0;次对角线是否相等for(i=n-1,j=0;i>=0,j<n;i-,j+)/if(NowSum!=sum)(YesOrNo=false;gotoEND;END:returnYesOrNo;voidcombination(int*p,intn,int*a)/求m=n*n个数(1,2,3.m)的全排列(intm=n*n;staticintNum=0;int*b_val=newintm;intc=0,k,i,j;b_valc=-1;/一维数组首地址的值赋-1c0
29、-1while(b_val0<m)/-1(if(+b_valc<m)/分别从0开始累加每个元素值,并限制不超出最大阶数/b001011202780.88判断魔方89012345678/7880.87判断魔方8889012345687/67.70.7688012345768/012345786/012345867./876543210(for(k=0;k<c;k+)/是否与前面数字重复,如有重复元素跳出,否则使K下标等于C下标if(b_valk=b_valc)break;if(k=c)/如果没有重复元素,就可以确定当前元素值,并继续排列下一个下标的数组元素
30、(if(c+1<m)/123.78如果不满足条件,则生成了一组排列方式,否则继续排列下一个元素/8(+c;/123.78b_valc=-1;/continue;else/生成了一组排列方式(k=-1;for(i=0;i<n;i+)(for(j=0;j<n;j+)(pij=ab_val+k;/a0-a8/判断是否为n阶魔方阵if(Judge(p,n)(printA(p,n);else(c-;deleteb_val;voidevaluate(int*p,intn)/给n阶方阵的元素赋值(inti;int*AllNum=newint3*3;for(i=1;i<=n*n;i+)
31、(AllNumi-1=i;combination(p,n,AllNum);deleteAllNum;voidmain()(inti,n,*a;strings;do/输入n阶方阵的阶数ncout<<"请输入n阶方阵的阶数n(退出程序按e或E键):";cin>>s;if(!strcmp(s.c_str(),"e”)|!strcmp(s.c_str(),"E”)(break;elseif(s.find_first_not_of("0123456789")!=string:npos)(cout<<"
32、;请输入有效的数字,不能含有非数字的字符。"<<endl;continue;else(n=atoi(s.c_str();if(n<1)(cout<<"请输入有效的数字,必须>=1。"<<endl;continue;/分配内存a=newint*n;for(i=0;i<n;i+)(ai=newintn;cout<<"正在运算,请等待。"<<endl;/给n阶方阵的元素赋值evaluate(a,n);cout<<"运算结束!"<<
33、endl;for(i=0;i<n;i+)(deleteai;deletea;while(1);return;/*5、求一个3x3矩阵对角线元素之和。*/#include<iostream.h>intdia(inta3);voidmain()inti,j,sum,a33=2,3,5,6,2,3,1,9,0;cout<<"a="for(i=0;i<3;i+)for(j=0;j<3;j+)cout<<aij;cout<<endl<<”"sum=dia(a);cout<<"
34、nsum="<<sum<<endl;intdia(inta33)inti,j,sum=0;for(i=0;i<3;i+)/主对角线之和for(j=i;j<=i;j+)sum+=aij;for(j=0;j<3;j+)/另一个对角线之和for(i=2-j;i<=2-j;i+)if(i!=j)/避免重复累加两个对焦向重合的元素sum+=aij;returnsum;/返回对角线员素之和/*6、编写一个程序,将字符数组s2中的全部字符拷贝到字符数组s1中。不用strcpy函数。拷贝时,'0'也要拷贝过去。'0'后面
35、的字符不拷贝。*/#include<iostream.h>voidscopy(chara,charb);voidmain()inti;chara10;charb10="Hello”;scopy(a,b);for(i=0;ai!='0'i+)cout<<ai;cout<<endl;voidscopy(chara,charb)inti;for(i=0;bi!='0'i+)ai=bi;ai='0'/*7、用筛选法求100之内的素数。(所谓素数就是除了1和它本身以外,不能再被别的整数整除,这种数称作素数(也称
36、质数)。)*/#include<iostream.h>voidmain()inti,j;for(i=1;i<=100;i+)for(j=2;j<i;j+)/判断素数if(i%j!=0);elsebreak;/不是素数if(i=j)/相等为素数cout<<""<<i;cout<<endl;/*8、用选择法对10个整数排序。*/#include<iostream.h>voidcsort(inta10);voidmain()inti;inta10=6,4,2,7,9,0,1,6,3,0;for(i=0;i&l
37、t;10;i+)/输出原数组数据顺序cout<<ai;cout<<endl;csort(a);for(i=0;i<10;i+)/输出排序后的顺序cout<<ai;cout<<endl;voidcsort(inta10)/排序inti,j,k,temp=0;for(i=1;i<10;i+)k=i;for(j=k+1;j<10;j+)/找出最小数的数组下标if(ak>aj)k=j;if(k!=i)temp=ai;/把数放到正确位置ai=ak;ak=temp;第6章指针/*1、在主函数中输入10个字符串。用另一函数对它们排序。然
38、后在主函数输出这10个已排好序的字符串。(用指针实现)*/#include<iostream.h>voidpsort(int*p);voidmain()inti,a10;cout<<"pleaseinputtennumbers:n"for(i=0;i<10;i+)cin>>ai;psort(a);cout<<"resortresult="for(i=0;i<10;i+)cout<<ai<<""voidpsort(int*p)inti,j,temp;fo
39、r(i=0;i<10;i+)/每循环一次确定数组中一个数的位置for(j=i+1;j<10;j+)/每次循环对比一个数的大小if(pi>pj)temp=pj;pj=pi;pi=temp;/*2、输入一个字符串,内有数字和非数字字符,如A123x4561233?8997jhlkll将其中连续的数字作为一个整数,依次存放到一数组a中,统计共有多少个整数,并输出这些数。*/#include<iostream.h>#include<string.h>#include<windows.h>intcharge(int*,char*);voidmain(
40、)inta50,i,numb;charb50;cout<<"pleaseinputacharacterstring:"<<endl;cin.getline(b,50);system("cls");cout<<"yourcharacterstringis"cout.write(b,strlen(b)<<endl;numb=charge(a,b);for(i=0;i<numb;i+)cout<<"a"<<i<<”="&l
41、t;<ai;cout<<endl<<"totalnumbers="<<numb<<endl;intcharge(int*q,char*p)/*q指向新数组,*p指向初始数组(intnumb=0;for(;*p!='0'p+)/判断每个字符(if(*p>='0'&&*p<='9')(*q=(*p)-'0'/将字符型整数转换成整型整数赋值给新数组p+;while(*p>='0'&&*p<=&
42、#39;9')/判断是否有连续字符型整数(*q=(*q)*10+(*p)-'0');/将连续字符型整数转换成一个整型整数赋值给新数组p+;q+;numb+;/统计整数的个数returnnumb;/*3、用指向指针的指针的方法对5个字符串排序并输出。*/#include<iostream.h>#include<string.h>voidsort(char*str);voidmain()(inti;char*string5;cout<<"输入5个字符串:"<<endl;for(i=0;i<5;i+)s
43、tringi=newchar10;cin.getline(*(string+i),50);sort(string);for(i=0;i<5;i+)deletestringi;voidsort(char*str)(inti=0,j;char*p=0;for(i=0;i<4;i+)(for(j=i+1;j<5;j+)(if(strcmp(*(str+i),*(str+j)<0)(p=*(str+i);*(str+i)=*(str+j);*(str+j)=p;cout<<"aftersortthechars:"<<endl;for(
44、i=0;i<5;i+)(cout<<*(str+i)<<endl;/*4、统计一字符串在另一个字符串中出现的次数。*/#include<iostream.h>#include<string.h>intchange(char*,char*);voidmain()(intsum;chara10="dog”;charb20="sdlkdogsddydodog”;cout.write(a,10)<<endl;cout.write(b,20)<<endl;sum=change(a,b);cout<&l
45、t;"sum="<<sum<<endl;intchange(char*p,char*q)(intsum=0,i=0;while(*q!='0')(while(*p=*q&&*p!='0')/对比是否含有相等字符串(*p+;*q+;i+;if(*p='0')(sum+=1;/含有字符串个数p=p-i;/第一个字符串重新定位q=q-i;/第二个字符串重新定位i=0;/重新累加移动次数q+;returnsum;/*5、有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数.n
46、和m从键盘输入。*/#include<iostream.h>#include<string.h>voidcharge(inta,int,int);voidmain()(inti,n,m,a50;cout<<"请输入n的值:"cin>>n;cout<<"请输入移动位数:"cin>>m;cout<<"请输入整数:"for(i=0;i<n;i+)(cin>>ai;cout<<"您输入的整数为:"for(i=0
47、;i<n;i+)(cout<<ai<<""cout<<endl;charge(a,n,m);cout<<"移动后的整数为:"for(i=0;i<n;i+)(cout<<ai<<""cout<<endl;voidcharge(inta,intn,intm)/n为整数个数,向右移动m个位置(inti,j;for(j=0;j<m;j+)/移动m个位置(for(i=n-1;i>=0;i-)/移动一个位置就要移动每一个数组元素(ai+1=
48、ai;a0=an;/*6、有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。*/#include<iostream.h>voidchange(inta,intn);voidmain()(inti,a50,n;cout<<"输入人数:"cin>>n;for(i=0;i<n;i+)ai=i+1;change(a,n);voidchange(inta,intn)(intqnumber=0,i=0,k=0;while(n-qnumber>1)/直到只剩下1人时(if(
49、ai!=0)k+;/报数if(k=3)(ai=0;/退出圈子的人qnumber+;/退出的总人数k=0;/重新开始报数i+;if(i=n)i=0;/当所有人都报过数之后重新每人再次报数for(i=0;i<n;i+)if(ai!=0)cout<<ai<<”"/*7、写一函数,实现两个字符串的比较。即自己写一个strcmp函数。*/#include<iostream.h>#include<string.h>intchange(char*,char*);voidmain()(intresult;chara10="dog&quo
50、t;charb20="sdlkdogsddydodog"cout.write(a,10)<<endl;cout.write(b,20)<<endl;result=change(a,b);cout<<"result="<<result<<endl;intchange(char*p,char*q)(intsum=0,i=0,flag=0;while(*p!='0'&&*q!='0')(if(*p>*q)(flag=1;/第一个字符串大于第二个字符
51、串返回1break;if(*p<*q)(flag=-1;/第二一个字符串大于第一个字符串返回-1break;if(*p=*q)&&*(p+1)='0'&&*(q+1)!='0')(flag=-1;/第二一个字符串大于第一个字符串返回-1break;*p+;*q+;returnflag;/*8、将一个5x5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),写一函数实现之。用main函数调用。*/#include<iostream.h>voidpsort(inta
52、);voidmain()inti;inta25=5,3,52,6,2,1,8,0,23,56,7,21,23,4,57,62,15,31,45,6,43,78,12,53,41;for(i=0;i<25;i+)cout<<""<<ai;cout<<endl;psort(a);voidpsort(inta)inti,j,k=0,temp,b55;for(i=0;i<25;i+)/每循环一次确定数组中一个数的位置for(j=i+1;j<25;j+)/每次循环对比一个数的大小if(ai>aj)temp=aj;aj=ai;
53、ai=temp;for(i=0;i<5;i+)for(j=0;j<5;j+)bij=ak+;temp=b44;/确定5个位置的数值b44=b22;b22=temp;temp=b01;b01=b04;b04=temp;temp=b02;b02=b40;b40=temp;temp=b03;b03=b44;b44=temp;for(i=0;i<5;i+)(for(j=0;j<5;j+)(cout<<"t"<<bij;cout<<endl;第7章结构体与共用体/*1、用指针和结构体实现一双向链表,并实现其相应的增、删、遍历
54、功能,并在实例中应用它。*/#include<iostream.h>typedefstructnode(intnumber;structnode*next;structnode*parent;Node,*LinkNode;classLinkClass(public:LinkNodefirst,current;/头指针,当前指针voidinit();/初始化函数LinkNodeInsert(intdata,LinkNodecur);/插入函数voidRemove(LinkNodep);/删除函数voidPrior(LinkNodehead);/遍历函数;voidLinkClass:i
55、nit()(structnode*head=newstructnode;structnode*tail=newstructnode;head->parent=NULL;head->next=tail;tail->parent=head;tail->next=NULL;first=current=head;LinkNodeLinkClass:Insert(intdata,LinkNodecur)(structnode*newNode=newstructnode;newNode->number=data;newNode->next=cur->next;cu
56、r->next=newNode;newNode->parent=cur;newNode->next->parent=newNode;cur=newNode;returncur;voidLinkClass:Prior(LinkNodehead)(LinkNodecur=head->next;while(cur->next!=NULL)(cout<<cur->number<<""cur=cur->next;cout<<""<<endl;voidLinkClass:
57、Remove(LinkNodecur)(LinkNodetemp=cur;temp->parent->next=temp->next;temp->next->parent=temp->parent;delete(temp);voidmain()(LinkClasslc;lc.init();LinkNodecur=lc.current;for(inti=0;i<=10;i+)/用循环来初始化结构体内的number(cur=lc.Insert(i,cur);/调用插入函数LinkNodehead=lc.first;cout<<"没调用
58、删除函数的遍历:"<<endl;lc.Prior(head);/遍历函数for(intj=0;j<=3;j+)/删除元素6(cur=cur->parent;lc.Remove(cur);/执行删除函数cout<<"调用删除函数后的遍历:"<<endl;lc.Prior(head);/*2、用指针和结构体实现栈及其方法,并在实例中应用它。*/#include<stdlib.h>#include<iostream.h>#defineSTACK_INIT_SIZE100#defineSTACKIN1
59、0structstackint*top;int*base;intstacksize;intinitstack(stack&s)s.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int);if(!s.base)return0;s.top=s.base;s.stacksize=STACK_INIT_SIZE;return1;intgettop(stacks,int&e)if(s.top=s.base)return0;e=*(s.top-1);return1;intpush(stack&s,inte)if(s.top-s.base>=
60、s.stacksize)s.base=(int*)realloc(s.base,(s.stacksize+STACKIN)*sizeof(int);if(!s.base)return0;s.top=s.base+s.stacksize;s.stacksize+=STACKIN;*s.top+=e;return1;intpop(stack&s,int&e)if(s.top=s.base)return0;e=*-s.top;return1;;voidmain()(stacks;intresult,e=0;result=s.initstack(s);if(result=1)cout&
61、lt;<"建栈成功!"<<endl;elsecout<<"建栈失败!"<<endl;for(inti=0;i<5;i+)result=s.push(s,i);if(result=1)cout<<"初始化栈成功!"<<endl;elsecout<<"初始化栈失败!"<<endl;s.gettop(s,e);cout<<"栈顶元素为:"<<e<<endl;result=
62、s.pop(s,e);if(result=1)cout<<"删除栈顶元素成功!"<<endl;elsecout<<"删除栈顶元素失败!"<<endl;s.pop(s,e);cout<<"删除的栈顶元素为:"<<e<<endl;/*3、编写一函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括numnamsscore3,用主函数输入这些记录,用print函数输出这些记录。4、在上题的基础上,编写一个函数input,用来输入5
63、个学生的数据记录。*/#include<string.h>#include<iostream.h>structstudent(public:intnum;charname20;intscore3;classcontral(public:voidprint(structstudent*p,intcount);intinput(structstudent*p,intcount);;voidcontral:print(structstudent*p,intcount)(for(inti=0;i<=count;i+)(cout<<"Num:"
64、;<<p->num<<endl;cout<<"Name:"<<p->name<<endl;cout<<"JAVA:"<<p->score0<<endl;cout<<"C+:"<<p->score1<<endl;cout<<"English:"<<p->score2<<endl;p+;intcontral:input(st
65、ructstudent*p,intcount)(while(true)(cout<<"请输入学号:"<<endl;cin>>p->num;cout<<"请输入姓名:"<<endl;cin>>p->name;cout<<"请输入JAVA分数:"<<endl;cin>>p->score0;cout<<"请输入C+心数:"<<endl;cin>>p->score1;cout<<"请输入English分数:"<<endl;cin>>p->score2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 聚氨酯锤纹漆项目可行性研究报告
- 防洪知识培训大纲课件
- 防汛知识培训考核目的
- 防汛救援知识培训材料课件
- 智慧城管信息化综合解决方案
- 环境科技行业环保装备行业市场格局分析
- 机械制造行业智能制造技术应用思考
- 万寿菊种植合同5篇
- 联通合约机,合同3篇
- (宝典指南)水泥砂石资料购销合同3篇
- 酒店薪酬管理制度细则
- JJG643-2024标准表法流量标准装置
- 《年产量50万吨煤制乙二醇合成工段工艺设计》6400字(论文)
- 成都建材使用一网通系统-建材代理商操作手册
- 幼小衔接音乐课件
- 路基路面压实度评定自动计算表-标准-
- 积滞病中医护理方案
- 《免疫细胞疗法》课件
- 《遥感技术及其在环境监测中的应用》课件
- 博物馆与社区合作模式-深度研究
- 猕猴桃工业流程
评论
0/150
提交评论