1、10年高级语言常用算法汇总常用算法1循环控制图形输出下列图形:#include using namespace std;int main() int a,b,n=10; for (a=0;a=n;a+) for(b=0;b10-a;b+) cout ; for (b=0;b=a;b+) cout#; cout ; for (b=0;b=a;b+) cout$; coutendl; 2循环控制图形输出下列图形:#include using namespace std;int main() int a,b,n=9; for (a=0;a=n;a+) for(b=0;ba;b+) cout ; fo
2、r (b=0;bn-a;b+) coutST; coutS; coutendl; 3 素数判定函数调用 :#include using namespace std; int prime(int n) for(int j=2;j=n/2;j+) if (n%j=0) return 0; if (j=n) return 1;int main() int m; coutm; if (prime(m) cout是素数; else cout不是素数;不用函数调用:4级数逼近:求的近似值,精确到小数点后6位#include using namespace std;int main() double a=3
3、,s=1,b=0,i=1; while (a=100) i*=(-1); b=i*(1/a); s+=b; a=a+2; s=(int)(s*1000000); s=s/1000000; coutsendl; return 0;4百钱买百鸡:一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少,要求三种鸡都必须买#include using namespace std;int main()for(int i=1;i=20;i+)for(int j=1;j=31;j+) for(int k=1;k=98;k+)if(5*i+3*j+k/3-10
4、0)continue;if(i+j+k-100)continue;if(k%3)continue;coutcock:iendl;couthen:jendl;coutchick:kendl;5Fibonacci数列书P107-1086求两个最大公约数#include using namespace std;int main() int a,b,c,d; coutab; c=a*b; while (d=a%b)!=0) a=b; b=d; cout最大公约数为:bendl; return 0;7进制转换十进制转八进制:#include using namespace std;void d8b(un
5、signed int n) if(n=7) coutn; else d8b(n/8); coutn%8; int main() int a; couta; d8b(a); coutendl; return 0;8一维数据中求最大值、最小值#include using namespace std;int main() int a5; int max=a0,maxPos=0; int min=a0,minPos=0; cout输入数组a,共5个数:; for(int n=0;nan; for (int i=1;i5;i+) if (max=ai) min=ai; minPos=i; for(int
6、 b=0;b5;b+) coutab=abendl; cout数组a中最大元素是:amaxPos=amaxPosendl; cout数组a中最小元素是:aminPos=aminPosendl; return 0;9数组排序(选择、冒泡)选择:#include using namespace std;void selsort(int data,int n);int main() int a=20,40,-50,7,13; int n=sizeof(a)/sizeof(int); selsort(a,n); for(int j=0;jn;j+) coutajt; coutendl; return
7、0;void selsort(int data,int n) int min,k,temp; for (int i=0;in-1;i+) min=datai; k=i; for (int j=i+1;jdataj) min=dataj; k=j; temp=datai; datai=datak; datak=temp; 冒泡:#include using namespace std;void bubblesort(int data,int n);int main() int a=20,40,-50,7,13; int n=sizeof(a)/sizeof(int); bubblesort(a,
8、n); for(int j=0;jn;j+) coutajt; coutendl; return 0;void bubblesort(int data,int n) int temp; for (int i=0;in;i+) for (int j=0;jdataj+1) temp=dataj; dataj=dataj+1; dataj+1=temp; 10有序数组的插入、删除插入:#includeint main()int i,j,Array7=1,2,4,5,6,7;cout显示原始数据:endl;for(int m=0;msizeof(Array)/4-1;m+)coutArraym ;c
9、outendl;coutj;for(int n=sizeof(Array)/4-2;n0;n-)if(Arrayn=j)Arrayn+1=Arrayn;elseArrayn+1=j;break;cout显示修改后数据:endl;for(i=0;isizeof(Array)/4;i+)coutArrayi ;coutendl;return 0;删除:#include #include using namespace std;int main() char s100=I love this program.; char c; cout请输入要删除的字符:; c=cin.get(); int i,j
10、; for (i=j=0;si!=0;i+) if(si!=c) sj=si; j+; sj=0; cout删除后的字符串为:sendl; return 0;11数组中数据的移动12二维数组中的鞍点:找出一个矩阵M58中的鞍点的行号和列号,鞍点是满足所在行中是最大的而所在列中是最小的元素#include using namespace std;int main()int a58;cout请输入数组a58的值endl;int i,j;for (i=0;i5;i+) for (j=0;jaij; int c = 0; for(i = 0;i5 ; i+) int max, min, k; for(
11、max = 0, j = 0; j 5; j+) if(aimax aij) max = j; for(min = 0, k = 0; k akmax) min = k; if(min = i) coutaimaxt; c+; if(c = 0) coutNOendl;return 0;13二维数组的乘法#include using namespace std;int main()int a22;int b22;int c22;cout请输入数组a22的值endl;int i,j;for (i=0;i2;i+) for (j=0;jaij; cout请输入b22的值:endl;for (i=0
12、;i2;i+) for (j=0;jbij; for (i=0;i2;i+) for (j=0;j2;j+) cij=0; for (int k=0;k2;k+) cij+=aik*bkj; cout请输出矩阵amn与矩阵buv乘积的值:endl;for (i=0;i2;i+) for (j=0;j2;j+) coutcijendl; return 0;14能用指针、数组写字符串的比较、连接、复制连接:#include using namespace std;void strcat(char a,char b);int main(void) char a50,b50; coutab; strc
13、at(a,b); return 0;void strcat(char a,char b) char c100;int i,j; for(i=0;ai!=0;i+) ci=ai; for(j=0;bj!=0;j+) ci=bj; i+; ci=0; coutcendl;比较: #include using namespace std;int strcmp(char *str1,char *str2) while (*str1|*str2) if (*str1*str2) return 1; if (*str1*str2) return -1; else *str1+; *str2+; retur
14、n 0;int main() char str1100; char str2100; int result=0; cout输入一串字符:; cin.getline (str1,100); cout输入一串字符:; cin.getline (str2,100); result=strcmp(str1,str2); if (result=1) cout字符串1大; if (result=-1) cout字符串2大; if (result=0) cout字符串1,2一样大; return 0;复制:#include using namespace std;void strcpy(char *str1,char *str2);int main() char str20; strcpy(str,abcdefg); coutstrendl; return 0;void strcpy(char *str1,char *str2) while (*str2!=0) *str1=*str2; str1+; str2+; *str1=0;注意:要求能函数中实现算法614题,必要时能提供函数返回值
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1