10年高级语言常用算法汇总.docx

上传人:b****4 文档编号:5282934 上传时间:2023-05-08 格式:DOCX 页数:19 大小:33.17KB
下载 相关 举报
10年高级语言常用算法汇总.docx_第1页
第1页 / 共19页
10年高级语言常用算法汇总.docx_第2页
第2页 / 共19页
10年高级语言常用算法汇总.docx_第3页
第3页 / 共19页
10年高级语言常用算法汇总.docx_第4页
第4页 / 共19页
10年高级语言常用算法汇总.docx_第5页
第5页 / 共19页
10年高级语言常用算法汇总.docx_第6页
第6页 / 共19页
10年高级语言常用算法汇总.docx_第7页
第7页 / 共19页
10年高级语言常用算法汇总.docx_第8页
第8页 / 共19页
10年高级语言常用算法汇总.docx_第9页
第9页 / 共19页
10年高级语言常用算法汇总.docx_第10页
第10页 / 共19页
10年高级语言常用算法汇总.docx_第11页
第11页 / 共19页
10年高级语言常用算法汇总.docx_第12页
第12页 / 共19页
10年高级语言常用算法汇总.docx_第13页
第13页 / 共19页
10年高级语言常用算法汇总.docx_第14页
第14页 / 共19页
10年高级语言常用算法汇总.docx_第15页
第15页 / 共19页
10年高级语言常用算法汇总.docx_第16页
第16页 / 共19页
10年高级语言常用算法汇总.docx_第17页
第17页 / 共19页
10年高级语言常用算法汇总.docx_第18页
第18页 / 共19页
10年高级语言常用算法汇总.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

10年高级语言常用算法汇总.docx

《10年高级语言常用算法汇总.docx》由会员分享,可在线阅读,更多相关《10年高级语言常用算法汇总.docx(19页珍藏版)》请在冰点文库上搜索。

10年高级语言常用算法汇总.docx

10年高级语言常用算法汇总

常用算法

1.循环控制图形输出下列图形:

#include

usingnamespacestd;

intmain()

{

inta,b,n=10;

for(a=0;a<=n;a++)

{

for(b=0;b<10-a;b++)

cout<<"";

for(b=0;b<=a;b++)

cout<<"#";

cout<<"";

for(b=0;b<=a;b++)

cout<<"$";

cout<

}

}

2.循环控制图形输出下列图形:

#include

usingnamespacestd;

intmain()

{

inta,b,n=9;

for(a=0;a<=n;a++)

{

for(b=0;b

cout<<"";

for(b=0;b

cout<<"ST";

cout<<"S";

cout<

}

}

3.素数判定

函数调用:

#include

usingnamespacestd;

intprime(intn)

{

for(intj=2;j<=n/2;j++)

if(n%j==0)

return0;

if(j==n)

return1;

}

intmain()

{

intm;

cout<<"输入m的值:

";

cin>>m;

if(prime(m))

cout<<"是素数";

else

cout<<"不是素数";

}

不用函数调用:

4.级数逼近:

求π的近似值,精确到小数点后6位

#include

usingnamespacestd;

intmain()

{

doublea=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;

cout<

return0;

}

4.百钱买百鸡:

一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少,要求三种鸡都必须买

#include

usingnamespacestd;

intmain()

{

for(inti=1;i<=20;i++)

for(intj=1;j<=31;j++)

for(intk=1;k<=98;k++)

{

if(5*i+3*j+k/3-100)

continue;

if(i+j+k-100)

continue;

if(k%3)

continue;

cout<<"cock:

"<

cout<<"hen:

"<

cout<<"chick:

"<

}

}

5.Fibonacci数列

书P107-108

6.求两个最大公约数

#include

usingnamespacestd;

intmain()

{

inta,b,c,d;

cout<<"输入两个数:

";

cin>>a>>b;

c=a*b;

while((d=a%b)!

=0)

{

a=b;

b=d;

}

cout<<"最大公约数为:

"<

return0;

}

7.进制转换

十进制转八进制:

#include

usingnamespacestd;

voidd8b(unsignedintn)

{

if(n<=7)

cout<

else

{

d8b(n/8);

cout<

}

}

intmain()

{

inta;

cout<<"输入一个数:

";

cin>>a;

d8b(a);

cout<

return0;

}

8.一维数据中求最大值、最小值

#include

usingnamespacestd;

intmain()

{

inta[5];

intmax=a[0],maxPos=0;

intmin=a[0],minPos=0;

cout<<"输入数组a,共5个数:

";

for(intn=0;n<5;n++)

cin>>a[n];

for(inti=1;i<5;i++)

{

if(max<=a[i])

{

max=a[i];

maxPos=i;

}

elseif(min>=a[i])

{

min=a[i];

minPos=i;

}

}

for(intb=0;b<5;b++)

cout<<"a["<

cout<<"数组a中最大元素是:

a["<

cout<<"数组a中最小元素是:

a["<

return0;

}

9.数组排序(选择、冒泡)

选择:

#include

usingnamespacestd;

voidselsort(intdata[],intn);

intmain()

{

inta[]={20,40,-50,7,13};

intn=sizeof(a)/sizeof(int);

selsort(a,n);

for(intj=0;j

cout<

cout<

return0;

}

voidselsort(intdata[],intn)

{

intmin,k,temp;

for(inti=0;i

{

min=data[i];

k=i;

for(intj=i+1;j

if(min>data[j])

{

min=data[j];

k=j;

}

temp=data[i];

data[i]=data[k];

data[k]=temp;

}

}

冒泡:

#include

usingnamespacestd;

voidbubblesort(intdata[],intn);

intmain()

{

inta[]={20,40,-50,7,13};

intn=sizeof(a)/sizeof(int);

bubblesort(a,n);

for(intj=0;j

cout<

cout<

return0;

}

voidbubblesort(intdata[],intn)

{

inttemp;

for(inti=0;i

for(intj=0;j

if(data[j]>data[j+1])

{

temp=data[j];

data[j]=data[j+1];

data[j+1]=temp;

}

}

10.有序数组的插入、删除

插入:

#include

intmain()

{

inti,j,Array[7]={1,2,4,5,6,7};

cout<<"显示原始数据:

"<

for(intm=0;m

cout<

cout<

cout<<"请输入你要插入的数字:

";

cin>>j;

for(intn=sizeof(Array)/4-2;n>0;n--)

if(Array[n]>=j)

Array[n+1]=Array[n];

else

{

Array[n+1]=j;

break;

}

cout<<"显示修改后数据:

"<

for(i=0;i

cout<

cout<

return0;

}

删除:

#include

#include

usingnamespacestd;

intmain()

{

chars[100]="Ilovethisprogram.";

charc;

cout<<"请输入要删除的字符:

";

c=cin.get();

inti,j;

for(i=j=0;s[i]!

='\0';i++)

{

if(s[i]!

=c)

{

s[j]=s[i];

j++;

}

}

s[j]='\0';

cout<<"删除后的字符串为:

"<

return0;

}

11.数组中数据的移动

12.二维数组中的鞍点:

找出一个矩阵M[5][8]中的鞍点的行号和列号,鞍点是满足所在行中是最大的而所在列中是最小的元素

#include

usingnamespacestd;

intmain()

{

inta[5][8];

cout<<"请输入数组a[5][8]的值"<

inti,j;

for(i=0;i<5;i++)

{

for(j=0;j<8;j++)

{

cin>>a[i][j];

}

}

intc=0;

for(i=0;i<5;i++)

{

intmax,min,k;

for(max=0,j=0;j<5;j++)

if(a[i][max]

max=j;

for(min=0,k=0;k<8;k++)

{

if(a[min][max]>a[k][max])

min=k;

}

if(min==i)

{

cout<

c++;

}

}

if(c==0)

cout<<"NO"<

return0;

}

13.二维数组的乘法

#include

usingnamespacestd;

intmain()

{

inta[2][2];

intb[2][2];

intc[2][2];

cout<<"请输入数组a[2][2]的值"<

inti,j;

for(i=0;i<2;i++)

{

for(j=0;j<2;j++)

{

cin>>a[i][j];

}

}

cout<<"请输入b[2][2]的值:

"<

for(i=0;i<2;i++)

{

for(j=0;j<2;j++)

{

cin>>b[i][j];

}

}

for(i=0;i<2;i++)

{

for(j=0;j<2;j++)

{

c[i][j]=0;

for(intk=0;k<2;k++)

{

c[i][j]+=a[i][k]*b[k][j];

}

}

}

cout<<"请输出矩阵a[m][n]与矩阵b[u][v]乘积的值:

"<

for(i=0;i<2;i++)

{

for(j=0;j<2;j++)

{

cout<

}

}

return0;

}

14.能用指针、数组写字符串的比较、连接、复制

连接:

#include

usingnamespacestd;

voidstrcat(chara[],charb[]);

intmain(void)

{

chara[50],b[50];

cout<<"输入两个字符串:

\n";

cin>>a>>b;

strcat(a,b);

return0;

}

voidstrcat(chara[],charb[])

{

charc[100];inti,j;

for(i=0;a[i]!

='\0';i++)

c[i]=a[i];

for(j=0;b[j]!

='\0';j++)

{

c[i]=b[j];

i++;

}

c[i]='\0';

cout<

}

比较:

#include

usingnamespacestd;

intstrcmp(char*str1,char*str2)

{

while(*str1||*str2)

{

if(*str1>*str2)

return1;

if(*str1<*str2)

return-1;

else

{

*str1++;

*str2++;

}

}

return0;

}

intmain()

{

charstr1[100];

charstr2[100];

intresult=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一样大";

return0;

}

复制:

#include

usingnamespacestd;

voidstrcpy(char*str1,char*str2);

intmain()

{

charstr[20];

strcpy(str,"abcdefg");

cout<

return0;

}

voidstrcpy(char*str1,char*str2)

{

while(*str2!

='\0')

{

*str1=*str2;

str1++;

str2++;

}

*str1='\0';

}

注意:

要求能函数中实现算法6~14题,必要时能提供函数返回值

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2