c++基礎(chǔ)例題100道--精選文檔_第1頁
c++基礎(chǔ)例題100道--精選文檔_第2頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、/* 1、打印出所有的"水仙花數(shù)"。所謂"水仙花數(shù)"是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如,153是一水仙花數(shù),因?yàn)?53 = 13 + 53 + 33。 */#include<iostream.h>void main()int i, 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、一個(gè)數(shù)如果恰好等于

2、它的因子之和,這個(gè)數(shù)就稱為"完數(shù)"。例如,6的因子為1、2、3,而6 = 1 + 2 + 3,因此6是"完數(shù)"。編程序找出1000之內(nèi)的所有完數(shù),并按下面的格式輸出其因子:6 -1,2,3 */#include<iostream.h>void main()int i,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

3、=0;k<t;k+)cout<<ak;if(k<t-1)cout<<","cout<<endl;k=0;/* 3、求Sn=a+aa+aaa+aaa之值,其中a是一個(gè)數(shù)字。例如:2+22+222+22222(此時(shí)n=5),n由鍵盤輸入。*/#include<iostream.h>void main()double a,sn=0.0,sum=0.0;int n,i;cout<<"please input a number"cin>>a;cout<<"pl

4、ease input n number"cin>>n;sn=a;sum=a;for(i=2;i<=n;i+)sum=sum*10+a;sn+=sum;cout<<"Sn="<<sn<<endl;/* 4、一球從100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地時(shí),共經(jīng)過了多少米?第10次反彈多高?*/#include<iostream.h>void main()double h1=100,h2=100,sum=0.0;int i;for(i=1;i<=10;i+)s

5、um+=h2;h1=h1/2.0;h2=h1*2;cout<<"sum="<<sum<<" "<<"h1="<<h1<<endl;/* 5、猴子吃桃問題。猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉了一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見只剩一個(gè)桃子了。求第一天共摘了多少桃子。*/#include<iostream.h>void main()int num

6、ber,i;number=1;for(i=10;i>1;i-)number=(number+1)*2;cout<<"number="<<number<<endl;第4章 函數(shù)/* 1、寫一函數(shù)用"氣泡法"對輸入的10個(gè)字符按由小到大的順序排列。*/#include<iostream.h>void main()int i,j,temp,a10;cout<<"please input ten numbers:n"for(i=0;i<10;i+)cin>>a

7、i;for(i=0;i<10;i+) /每循環(huán)一次確定數(shù)組中一個(gè)數(shù)的位置for(j=i+1;j<10;j+) /每次循環(huán)對比一個(gè)數(shù)的大小if(ai>aj)temp=aj;aj=ai;ai=temp;cout<<"resort result="for(i=0;i<10;i+)cout<<ai<<" "/* 2、用遞歸方法求n階勒讓得多項(xiàng)式的值,遞歸公式為1. (n = 0)Pn(x) = x (n = 1)(2n-1)*x*Pn-1(x)-(n-1)*Pn-2(x)/n (n > 1) */

8、#include<iostream.h>double fun (double,double);void main()double n,x,sum;cout<<"input n and x"<<endl;cin>>n>>x;sum=fun(n,x);cout<<"P"<<n<<"("<<x<<")"<<"="<<sum<<endl;double

9、 fun(double n1,double x1)if (n1=0)return 1;else if (n1=1)return x1;else if (n1>1)return (2*n1-1)*x1*fun(n1-1,x1)-(n1-1)*fun(n1-2,x1)/n1;/* 3、編寫一函數(shù),由實(shí)參傳來一字符串,統(tǒng)計(jì)此字符串中字母、數(shù)字、空格、和其它字符的個(gè)數(shù),并在主函數(shù)中輸入字符串以及輸出上述結(jié)果。 */#include<iostream.h>void judge(char a);void main()const int size=100;char asize;cin.ge

10、tline(a,size);judge(a);void judge(char a100)/判斷字符類型int letter=0,number=0,others=0,i=0;while(ai!='0')if (ai>='a'&&ai<='z')|(ai>='A'&&ai<='z') letter+;/統(tǒng)計(jì)字母個(gè)數(shù)else if (ai>='0' && ai<='9') number+;/統(tǒng)計(jì)數(shù)字個(gè)數(shù)el

11、se others+;/統(tǒng)計(jì)其他數(shù)個(gè)數(shù)i+;cout<<"letter="<<letter<<" number="<<number<<" others="<<others<<endl;/* 4、給出年、月、日,計(jì)算該日是該年的第幾天。 */#include<iostream.h>int lead(int);void main()int ly,year,month,date,i,sum=0;cout<<"input ye

12、ar、month、date: "cin>>year>>month>>date;int a12=31,0,31,30,31,30,31,31,30,31,30,31;ly=lead(year);if (ly=1)a1=29;/366天else a1=28;/365天for(i=0;i<month-1;i+) /當(dāng)前月之前所有月天數(shù)累加和sum+=ai;sum+=date; /加上當(dāng)前月天數(shù)cout<<"你輸入的日期是當(dāng)年的第"<<sum<<"天"int lead(int

13、 y)/判斷閏年if(y%4=0&&y%100!=0)|(y%400=0) return 1;/是閏年else return 0;/不是閏年/* 5、寫兩個(gè)函數(shù),分別求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),用主函數(shù)調(diào)用這兩個(gè)函數(shù),并輸出結(jié)果,兩個(gè)整數(shù)由鍵盤輸入。 */#include<iostream.h>int cdivisor(int,int);int cmultiple(int,int,int);void main()int x,y,d,m;cout<<"input two number: "cin>>x>>

14、y;d=cdivisor(x,y);m=cmultiple(x,y,d);cout<<"common divisor is "<<d<<endl<<"common multiple is "<<m<<endl;int cdivisor(int x1,int y1)/最大公約數(shù)int r,temp;if (x1<y1)temp=x1;x1=y1;y1=temp;while(x1%y1)/當(dāng)較大數(shù)除以較小數(shù)余數(shù)等于0時(shí),較小數(shù)為最大公約數(shù)r=x1%y1;x1=y1;y1=r;ret

15、urn y1;int cmultiple(int x2,int y2,int d1)/最小公倍數(shù)return x2*y2/d1;/兩數(shù)相乘結(jié)果除以它們的最大公約數(shù)為最小公倍數(shù)/* 6、寫一函數(shù),將兩個(gè)字符串連接。 */#include<iostream.h>#include<string.h>void main()const int size=100;char asize,bsize;cout<<"input two string:"<<endl;cin.getline(a,size);cin.getline(b,size);

16、strcat(a,b);cout<<"a="<<a<<endl;/* 7、寫一函數(shù),將一個(gè)字符串的元音字母復(fù)制到另一個(gè)字符串,然后輸出。 */#include<iostream.h>#include<string.h>void scpy(char *,char *);void main()const int size=100;char asize="Hello world"char bsize="Net"cout<<"a= "<<a

17、<<"b= "<<b<<endl;scpy(a,b);cout<<"a= "<<a<<endl;void scpy(char *p,char *q)while(*q!='0')if (*q='a'|*q='A'|*q='e'|*q='E'|*q='i'|*q='I'|*q='o'|*q='O'|*q='u'|*q='U

18、')*p+=*q;q+;/* 8、寫一函數(shù),輸入一個(gè)四位數(shù)字,要求輸出這4個(gè)數(shù)字字符,但每兩個(gè)數(shù)字間空一空格。如輸入1990,應(yīng)輸出"1 9 9 0"。 */#include<iostream.h>#include<string.h>void outs(char a);void main()const int size=10;char asize;cin.getline(a,size);outs(a);void outs(char a10)int i;if(strlen(a)<=4)for(i=0;i<4;i+)cout<&

19、lt;ai<<" "else cout<<"input error."<<endl;第5章 數(shù)組/* 1、將一個(gè)數(shù)組中的值按逆序重新存放,例如,原來順序?yàn)椋篴、b、c、d。要求改為:d、c、b、a。 */#include<iostream.h>void back(char *);void main()char a50="abcdefg"cout<<"a="<<a<<endl;back(a);#include<iostream.

20、h>void back(char *p)int i=0;while(*p!='0')p+;/把指針定位到字符串末尾i+;/統(tǒng)計(jì)字符個(gè)數(shù)cout<<"a="for(;i>0;i-)/逆序輸出p-;cout<<*p;cout<<endl;/* 2、打印出楊輝三角形(要求打印出前15行)。(楊輝三角最本質(zhì)的特征是,它的兩條斜邊都是由數(shù)字1組成的,而其余的數(shù)則是等于它肩上的兩個(gè)數(shù)之和。) */#include<iostream.h>void tri(int a15);void main()int i,j,a

21、1515;tri (a);cout<<"a= "for(i=0;i<15;i+)/遍歷整個(gè)數(shù)組for(j=0;j<=i;j+)cout<<aij;if(aij>=1&&aij<=9)/當(dāng)輸出個(gè)位數(shù)之后輸出4個(gè)空格保持整齊cout<<" "else if (aij>=10&&aij<=99)/當(dāng)輸出十位數(shù)之后輸出3個(gè)空格保持整齊cout<<" "else if(aij>=100&&aij<=99

22、9)/當(dāng)輸出百位數(shù)之后輸出2個(gè)空格保持整齊cout<<" "else cout<<" "/當(dāng)輸出百位數(shù)之后輸出1個(gè)空格保持整齊cout<<endl<<" "/每行輸出結(jié)束后換行void tri(int a1515)int i,j;for(i=0;i<15;i+)for(j=0;j<=i;j+)if(j=0|j=i)/三角形第一列和對角線被賦值為1aij=1;else aij=ai-1j-1+ai-1j;/算出其余的數(shù)組元素/* 3、編一程序,將兩個(gè)字符串連接起來,不要用str

23、cat函數(shù)。 */#include<iostream.h>#include<string.h>void scat(char *,char *);void main()const int size=100;char asize="Hello"char bsize="Bye"cout<<"a="<<a<<" b="<<b<<endl;scat(a,b);cout<<"a="<<a<<

24、;" after link a and b"<<endl;void scat(char *p,char *q)while(*p!='0')/確定數(shù)組a的插入位置p+;while(*q!='0')*p=*q;p+;q+;/* 4、打印"魔方陣"。所謂魔方陣是指這樣的方陣,它的每一行、每一列和對角線之和均相等。例如:三階魔方陣:8 1 63 5 74 9 2 要求打印由1到n2的自然數(shù)構(gòu)成的所有魔方陣。 */方法一:輸出N介魔方陣,但每介只輸出一種。#include<iostream.h>void sq

25、uare(int a10,int k,int n);void main()int n,i,j,k,a1010=0;cout<<"input an odd number:"<<endl;cin>>n;k=n/2;/確定第一個(gè)數(shù)列數(shù)square(a,k,n);for(i=0;i<n;i+)for(j=0;j<n;j+)cout<<"t"<<aij;cout<<endl;void square(int a10,int k,int n)int i,j;for(i=1,j=0;i&

26、lt;=n*n;i+,j-,k+)/n為階數(shù),從1開始給數(shù)組賦值if(j<0&&k>=n)/當(dāng)數(shù)組行列都越出范圍時(shí)候,確定數(shù)組正確位置j+=2;k-=1;else if(j<0)/當(dāng)數(shù)組行越出范圍時(shí)候,確定數(shù)組正確位置j+=n;else if(k>=n)/當(dāng)數(shù)組列越出范圍時(shí)候,確定數(shù)組正確位置k-=n;else if(ajk!=0)/當(dāng)數(shù)組原位置有數(shù)時(shí)候,確定數(shù)組位置j+=2;k-=1;ajk=i;/方法二:輸出N介魔方陣所有魔方陣。#include <string>#include <iomanip>#include <i

27、ostream>using namespace std;void printA(int *p,int n)/輸出這個(gè)n階魔方陣cout<<endl<<"下面是一個(gè)"<<n<<"階魔方陣:"<<endl;int i,j;for(i = 0;i < n;i+)for(j = 0;j < n;j+)cout<<setw(4)<<pij;cout<<endl;cout<<endl<<endl;bool Judge(int *p

28、,int n)/判斷是否為n階魔方陣int i,j,sum = 0,NowSum = 0;bool YesOrNo = true;for(j = 0;j < n;j+)/第一行總和sum += p0j;for(i = 1;i < n;i+)/判斷每行總和是否相等NowSum = 0;for(j = 0;j < n;j+)NowSum += pij;if(NowSum != sum)YesOrNo = false;goto END;for(i = 0;i < n;i+)/每列是否相等NowSum = 0;for(j = 0;j < n;j+)NowSum += pj

29、i;if(NowSum != sum)YesOrNo = false;goto END;NowSum = 0;for(i = 0,j = 0;i < n,j < n;i+,j+)/主對角線是否相等NowSum += pij;if(NowSum != sum)YesOrNo = false;goto END;NowSum = 0;for(i = n-1,j = 0;i >= 0,j < n;i-,j+)/次對角線是否相等NowSum += pij;if(NowSum != sum)YesOrNo = false;goto END;END:return YesOrNo;vo

30、id combination(int *p,int n,int *a)/求m = n*n個(gè)數(shù)(1,2,3.m)的全排列int m = n*n;static int Num = 0;int *b_val = new intm;int c = 0,k,i,j;b_valc = -1;/一維數(shù)組首地址的值賦-1 c0-1while(b_val0 < m) /-1if(+b_valc < m) /分別從0開始累加每個(gè)元素值,并限制不超出最大階數(shù)/b00 10 11 20 21 22.66.70.77 80.88 判斷魔方 89 012345678/ 78 80.87 判斷魔方 88 89

31、012345687/ 67.70.76 88 012345768/ 012345786/ 012345867 ./ 876543210for(k = 0;k < c;k+) /是否與前面數(shù)字重復(fù),如有重復(fù)元素跳出,否則使K下標(biāo)等于C下標(biāo)if(b_valk = b_valc)break;if(k = c)/如果沒有重復(fù)元素,就可以確定當(dāng)前元素值,并繼續(xù)排列下一個(gè)下標(biāo)的數(shù)組元素if(c+1 < m) /1 2 3.7 8 如果不滿足條件,則生成了一組排列方式,否則繼續(xù)排列下一個(gè)元素/ 8+c; /1 2 3.7 8b_valc = -1;/ continue;else /生成了一組排列

32、方式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);elsec-;delete b_val;void evaluate(int *p,int n)/給n階方陣的元素賦值int i;int *AllNum = new int3*3;for(i = 1;i <= n*n;i+)AllNumi - 1 = i;combination(p,n,AllNum);delete AllNum;void main()int i,n,*a

33、;string s;do/輸入n階方陣的階數(shù)ncout<<"請輸入n階方陣的階數(shù)n(退出程序按e或E鍵):"cin>>s;if(!strcmp(s.c_str(),"e") | !strcmp(s.c_str(),"E")break;else if(s.find_first_not_of("0123456789") != string:npos)cout<<"請輸入有效的數(shù)字,不能含有非數(shù)字的字符。"<<endl;continue;elsen =

34、atoi(s.c_str();if(n<1)cout<<"請輸入有效的數(shù)字,必須 >= 1。"<<endl;continue;/分配內(nèi)存a = new int*n;for(i = 0; i < n; i+)ai = new intn;cout<<"正在運(yùn)算,請等待。"<<endl;/給n階方陣的元素賦值evaluate(a,n);cout<<"運(yùn)算結(jié)束!"<<endl;for(i = 0; i < n; i+)delete ai;delet

35、e a;while(1);return;/* 5、求一個(gè)3x3矩陣對角線元素之和。*/#include<iostream.h>int dia(int a3);void main()int i,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<<"nsum="<<sum<

36、;<endl;int dia(int a33)int i,j,sum=0;for(i=0;i<3;i+)/主對角線之和for(j=i;j<=i;j+)sum+=aij;for(j=0;j<3;j+)/另一個(gè)對角線之和for(i=2-j;i<=2-j;i+)if(i!=j)/避免重復(fù)累加兩個(gè)對焦向重合的元素sum+=aij;return sum;/返回對角線員素之和/* 6、編寫一個(gè)程序,將字符數(shù)組s2中的全部字符拷貝到字符數(shù)組s1中。不用strcpy函數(shù)??截悤r(shí),'0'也要拷貝過去。 '0'后面的字符不拷貝。*/#include&l

37、t;iostream.h>void scopy(char a,char b);void main()int i;char a10;char b10="Hello"scopy(a,b);for(i=0;ai!='0'i+)cout<<ai;cout<<endl;void scopy(char a,char b)int i;for(i=0;bi!='0'i+)ai=bi;ai='0'/* 7、用篩選法求100之內(nèi)的素?cái)?shù)。(所謂素?cái)?shù)就是除了1和它本身以外,不能再被別的整數(shù)整除,這種數(shù)稱作素?cái)?shù)(也稱質(zhì)數(shù))

38、。)*/#include<iostream.h>void main()int i,j;for(i=1;i<=100;i+)for(j=2;j<i;j+)/判斷素?cái)?shù)if(i%j!=0);else break;/不是素?cái)?shù)if(i=j)/相等為素?cái)?shù)cout<<" "<<i;cout<<endl;/* 8、用選擇法對10個(gè)整數(shù)排序。*/#include<iostream.h>void csort(int a10);void main()int i;int a10=6,4,2,7,9,0,1,6,3,0;for(

39、i=0;i<10;i+)/輸出原數(shù)組數(shù)據(jù)順序cout<<ai;cout<<endl;csort(a);for(i=0;i<10;i+)/輸出排序后的順序cout<<ai;cout<<endl;void csort(int a10)/排序int i,j,k,temp=0;for(i=1;i<10;i+)k=i;for(j=k+1;j<10;j+)/找出最小數(shù)的數(shù)組下標(biāo)if(ak>aj)k=j;if(k!=i)temp=ai;/把數(shù)放到正確位置ai=ak;ak=temp;第6章 指針/* 1、在主函數(shù)中輸入10個(gè)字符串。

40、用另一函數(shù)對它們排序。然后在主函數(shù)輸出這10個(gè)已排好序的字符串。(用指針實(shí)現(xiàn))*/#include<iostream.h>void psort(int *p);void main()int i,a10;cout<<"please input ten numbers:n"for(i=0;i<10;i+)cin>>ai;psort(a);cout<<"resort result="for(i=0;i<10;i+)cout<<ai<<" "void psor

41、t(int *p)int i,j,temp;for(i=0;i<10;i+) /每循環(huán)一次確定數(shù)組中一個(gè)數(shù)的位置for(j=i+1;j<10;j+) /每次循環(huán)對比一個(gè)數(shù)的大小if(pi>pj)temp=pj;pj=pi;pi=temp;/* 2、輸入一個(gè)字符串,內(nèi)有數(shù)字和非數(shù)字字符,如A123x456 1233?8997jhlkll將其中連續(xù)的數(shù)字作為一個(gè)整數(shù),依次存放到一數(shù)組a中,統(tǒng)計(jì)共有多少個(gè)整數(shù),并輸出這些數(shù)。*/#include<iostream.h>#include<string.h>#include <windows.h>in

42、t charge(int *,char *);void main()int a50,i,numb;char b50;cout<<"please input a character string:"<<endl;cin.getline(b,50);system("cls");cout<<"your character string is "cout.write(b,strlen(b)<<endl;numb=charge(a,b);for(i=0;i<numb;i+)cout<&

43、lt;" a"<<i<<"="<<ai;cout<<endl<<"total numbers="<<numb<<endl;int charge(int *q,char *p)/*q指向新數(shù)組,*p指向初始數(shù)組int numb=0;for(;*p!='0'p+)/判斷每個(gè)字符if(*p>='0'&&*p<='9')*q=(*p)-'0'/將字符型整數(shù)轉(zhuǎn)換成整型整數(shù)

44、賦值給新數(shù)組p+;while(*p>='0'&&*p<='9')/判斷是否有連續(xù)字符型整數(shù)*q=(*q)*10+(*p)-'0');/將連續(xù)字符型整數(shù)轉(zhuǎn)換成一個(gè)整型整數(shù)賦值給新數(shù)組p+;q+;numb+;/統(tǒng)計(jì)整數(shù)的個(gè)數(shù)return numb;/* 3、用指向指針的指針的方法對5個(gè)字符串排序并輸出。*/#include <iostream.h>#include <string.h>void sort(char *str);void main()int i;char *string5;cout&l

45、t;<"輸入5個(gè)字符串:"<<endl;for(i=0;i<5;i+)stringi = new char10;cin.getline(*(string+i),50);sort(string);for(i=0;i<5;i+)delete stringi;void sort(char *str)int i=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)

46、=p;cout<<"after sort the chars :"<<endl;for(i=0;i<5;i+)cout<<*(str+i)<<endl;/* 4、統(tǒng)計(jì)一字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。*/#include<iostream.h>#include<string.h>int change(char *,char *);void main()int sum;char a10="dog"char b20="sdlkdogsddydodog"cout

47、.write(a,10)<<endl;cout.write(b,20)<<endl;sum=change(a,b);cout<<"sum="<<sum<<endl;int change(char *p,char *q)int sum=0,i=0;while(*q!='0')while(*p=*q&&*p!='0')/對比是否含有相等字符串*p+;*q+;i+;if(*p='0')sum+=1;/含有字符串個(gè)數(shù)p=p-i;/第一個(gè)字符串重新定位q=q-i

48、;/第二個(gè)字符串重新定位i=0;/重新累加移動(dòng)次數(shù)q+;return sum;/* 5、有n個(gè)整數(shù),使其前面各數(shù)順序向后移m個(gè)位置,最后m個(gè)數(shù)變成最前面的m個(gè)數(shù).n和m從鍵盤輸入。*/#include<iostream.h>#include<string.h>void charge(int a,int,int);void main()int i,n,m,a50;cout<<"請輸入n的值:"cin>>n;cout<<"請輸入移動(dòng)位數(shù):"cin>>m;cout<<"

49、;請輸入整數(shù):"for(i=0;i<n;i+)cin>>ai;cout<<"您輸入的整數(shù)為:"for(i=0;i<n;i+)cout<<ai<<" "cout<<endl;charge(a,n,m);cout<<"移動(dòng)后的整數(shù)為:"for(i=0;i<n;i+)cout<<ai<<" "cout<<endl;void charge(int a,int n, int m)/n為整數(shù)個(gè)

50、數(shù),向右移動(dòng)m個(gè)位置int i,j;for(j=0;j<m;j+)/移動(dòng)m個(gè)位置for(i=n-1;i>=0;i-)/移動(dòng)一個(gè)位置就要移動(dòng)每一個(gè)數(shù)組元素ai+1=ai;a0=an;/* 6、有n個(gè)人圍成一圈,順序排號。從第1個(gè)人開始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,問最后留下的是原來第幾號的那位。*/#include<iostream.h>void change(int a,int n);void main()int i,a50,n;cout<<"輸入人數(shù):"cin>>n;for(i=0;i<n;i+)ai=i

51、+1;change(a,n);void change(int a,int n)int qnumber=0,i=0,k=0;while(n-qnumber>1)/直到只剩下1人時(shí)if(ai!=0)k+; /報(bào)數(shù)if(k=3)ai=0; /退出圈子的人qnumber+; /退出的總?cè)藬?shù)k=0; /重新開始報(bào)數(shù)i+;if(i=n)i=0; /當(dāng)所有人都報(bào)過數(shù)之后重新每人再次報(bào)數(shù)for(i=0;i<n;i+)if(ai!=0)cout<<ai<<" "/* 7、寫一函數(shù),實(shí)現(xiàn)兩個(gè)字符串的比較。即自己寫一個(gè)strcmp函數(shù)。*/#include&l

52、t;iostream.h>#include<string.h>int change(char *,char *);void main()int result;char a10="dog"char b20="sdlkdogsddydodog"cout.write(a,10)<<endl;cout.write(b,20)<<endl;result=change(a,b);cout<<"result="<<result<<endl;int change(char

53、*p,char *q)int sum=0,i=0,flag=0;while(*p!='0'&&*q!='0')if(*p>*q)flag=1;/第一個(gè)字符串大于第二個(gè)字符串返回1break;if(*p<*q)flag=-1;/第二一個(gè)字符串大于第一個(gè)字符串返回-1break;if(*p=*q)&&*(p+1)='0'&&*(q+1)!='0')flag=-1;/第二一個(gè)字符串大于第一個(gè)字符串返回-1break;*p+;*q+;return flag;/* 8、將一個(gè)5 x

54、 5的矩陣中最大的元素放在中心,四個(gè)角分別放四個(gè)最小的元素(順序?yàn)閺淖蟮接?,從上到下順序依次從小到大存放),寫一函?shù)實(shí)現(xiàn)之。用main函數(shù)調(diào)用。*/#include<iostream.h>void psort(int a);void main()int i;int a25=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);void psort(

55、int a)int i,j,k=0,temp,b55;for(i=0;i<25;i+) /每循環(huán)一次確定數(shù)組中一個(gè)數(shù)的位置for(j=i+1;j<25;j+) /每次循環(huán)對比一個(gè)數(shù)的大小if(ai>aj)temp=aj;aj=ai;ai=temp;for(i=0;i<5;i+)for(j=0;j<5;j+)bij=ak+;temp=b44; /確定5個(gè)位置的數(shù)值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<&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論