斐波那契前30项:
#include<iostream.h>
int main()
{
int f1=1,f2=1,i;
for(i=1;i<=15;i++)
{cout<<f1<<" "<<f2<<" ";
f1=f1+f2;
f2=f1+f2;
}
cout<<endl;
return 0;
}
判断素数:
#include<iostream.h>
int main()
{
int i,n,k=1;
cout<<"检验:";
cin>>n;
for(i=2;i<=n/2;i++)
if(n%i==0)
{k=0;break;
}
if(k==1)
cout<<n<<"是素数"<<endl;
else
cout<<n<<"非素数"<<endl;
return 0;
}
九九乘法表:
#include<iostream.h>
main()
{
for (int i=1;i<=9;i++) {
cout<<i;
for (int j=1;j<=9;j++)
cout<<'\t'<<i<<"*"<<j<<"="<<i*j;
cout<<endl;
}
}
最大公约数:
#include<iostream.h>
int main()
{
int n1,n2,m,k;
cout<<"n1"<<"=";
cin>>n1;
cout<<"n2"<<"=";
cin>>n2;
for(k=1;k<=n1&&k<=n2;k++)
if(n1%k==0&&n2%k==0)
m=k;
cout<<"最大公约数"<<"="<<m<<endl;
return 0;
}
最小公倍数:
#include<iostream.h>
int fun(int x,int y)
{
int j=1,m,n;
m=j%x;
n=j%y;
while(m!=0||n!=0)
{j=j+1;
m=j%x;
n=j%y;
}
return j;
}
int main()
{int x1,x2,j;
cout<<"请输入两个数:"<<endl;
cin>>x1>>x2;
j=fun(x1,x2);
cout<<j<<endl;
return 0;
}
冒泡由小到大排序:
#include<iostream.h>
int main()
{
const int n=6;
int a[n]={2,8,5,9,3,7},i,j,t;
for(i=1;i<n;i++)
for(j=0;j<n-1;j++)
if(a[j]>a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=0;i<n;i++)
cout<<a[i];
cout<<endl;
return 0;
}
2--9进制数转换为十进制:
#include<iostream.h>
int fun(char *p,int m)
{int n;
n=*p-Ɔ'
p++;
while(*p!=0)
{n=n*m+*p-Ɔ'
p++;}
return n;}
void main()
{char s[5];
int m,n;
cin>>m>>s;
n=fun(s,m);
cout<<"十进制数为"<<n<<endl;
}
输出菱形:
#include<iostream.h>
int main()
{
int i,j,k;
for(i=0;i<=3;i++)
{for(j=0;j<=2-i;j++)
cout<<" ";
for(k=0;k<=2*i;k++)
cout<<"*";
cout<<endl;
}
for(i=0;i<=2;i++)
{for(j=0;j<=i;j++)
cout<<" ";
for(k=0;k<=4-2*i;k++)
cout<<"*";
cout<<endl;
}
return 0;
}
两个字符串连接:
#include<iostream.h>
void fun(char p1[],char p2[])
{int i,j;
for(i=0;p1[i]!='\0'i++);
for(j=0;p2[j]!='\0'j++)
p1[i++]=p2[j];
p1[i]='\0'}
void main()
{char s1[20],s2[20];
cin>>s1>>s2;
fun(s1,s2);
cout<<s1<<endl;
}
不小于6的偶数用两个素数表示:
#include<iostream.h>
#include<math.h>
int main()
{
int a,b,c,d;
cout<<"不小于6的偶数:";
cin>>a;
cout<<"分解:"<<endl;
for(b=3;b<=a/2;b=b+2)
{for(c=2;c<=sqrt(b);c++)
if(b%c==0)
break;
if(c>sqrt(b))
d=a-b;
else
break;
for(c=2;c<=sqrt(d);c++)
if(d%c==0)
break;
if(c>sqrt(d))
cout<<a<<"="<<b<<"+"<<d<<endl;
}
return 0;
}
汉诺塔:
#include<iostream.h>
void move(char x,char y)
{cout<<x<<"-->"<<y<<endl;
}
void hanio(int n,char one,char two,char thr)
{
if(n==1)
move(one,thr);
else
{hanio(n-1,one,thr,two);
move(one,thr);
hanio(n-1,two,one,thr);
}
}
int main()
{
int m;
cout<<"汉诺塔高度:";
cin>>m;
hanio(m,'A','B','C');
return 0;
}
删除字符串中所有*号:
#include<iostream.h>
int main()
{
int i,j=0;
char a[20]="ssgyu***hsja**sh";
for(i=0;a[i];i++)
if(a[i]!='*')
a[j++]=a[i];
a[j]='\0'
cout<<a<<endl;
return 0;
}
将数组元素逆序输出:
#include<iostream.h>
void main()
{const int n=6;
int i,a[n]={2,3,5,1,7,6},t;
for(i=0;i<=(n-1)/2;i++)
{t=a[i];
a[i]=a[n-i-1];
a[n-i-1]=t;}
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;}
10进制转换为2—9进制数:
#include<iostream.h>
int main()
{
int i,j,num,k=-1;
int a[]={0};
cin>>num>>j;
while(num!=0)
{a[++k]=num%j;
num=num/j;}
for(i=k;k>0;k--)
cout<<a[k];
}
统计在tt数组中a-z各自出现的次数存入ss中:
void fun(char *tt,int *ss)
{int i;
for(i=0;i<26;i++)
ss[i]=0;
for(i=0;tt[i]!='\0'i++)
if(tt[i]>='a'&&tt[i]<='z')
ss[tt[i]-'a']++;}
金字塔:
#include<iostream.h>
int main()
{
int i,j,m,n;
cout<<"金字塔层数:";
cin>>n;
for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)
cout<<" ";
for(m=i;m>=1;m--)
cout<<m;
for(m=2;m<=i;m++)
cout<<m;
cout<<endl;
}
cout<<endl;
return 0;
}
杨辉三角:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[10][10],i,j;
for(i=0;i<10;i++)
{
for(j=10;j>=i;j--)
cout<<" ";/*两个空格*/
for(j=0;j<=i;j++)
{
if(i==j||j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
cout<<setw(3)<<a[i][j]<<' ' /*%3d后一个空格*/
if(i==j)
cout<<endl;
}
}
return 0;
}
//c++新建文件
#include <fstream.h>
#include<stdlib.h>
int main()
{
int a[10];
ofstream out("f1.dat",ios::out);
if(!out)
{cerr<<"open error"<<endl;
exit(1);
}
for(int i=0;i<10;i++)
{cin>>a[i];
out<<a[i]<<" ";
}
out.close();
return 0;
}
//c++读取文件
#include<fstream.h>
#include<stdlib.h>
int main()
{
int a[10],max,i,order=0;
ifstream in("f1.dat",ios::in);
if(!in)
{cerr<<"open error"<<endl;
exit(1);
}
for(i=0;i<10;i++)
{in>>a[i];
cout<<a[i]<<" ";
}
cout<<endl;
max=a[0];
for(i=1;i<10;i++)
if(a[i]>max)
{max=a[i];
order=i;
}
cout<<max<<endl<<order<<endl;
in.close();
return 0;
}
strcpy函数:
char *strcpy(char *str1,const char *str2)
{assert(str1!=NULL&&str2!=NULL);
char *addr=str1;
while(*str1++=*str2++);
return addr;
}
strlen函数:
int strlen(const char *str)
{assert(str!=NULL);
int len;
while(*str++)
len++;
return len;
}
指针和引用的数字交换:
void swap(int *p1,int *p2)
{int t;
t=*p1;*p1=*p2;*p2=t;}
void swap(int &p1,int &p2)
{int t;
t=p1;p1=p2;p2=t;}
两个变量a,b,不用if,?:,switch,找出最大的一个数:
int max=((a+b)+abs(a-b))/2
将a,b交换,不用任何其他变量:
a=a^b;b=a^b;a=a^b;
a=a+b;b=a-b;a=a-b;
const指针:
1 指向常对象的指针:
const int *p=&a; *p是常量
2 指向对象的常指针:
int *const p=&a; p是常量
3 指向常对象的常指针
const int *const p=&a; p与*p均是常量
int OrderSearch(int dat[],int kk,int len)//顺序查找
{
for(int ix=0;ix!=len;++ix)
{
if(dat[ix]==kk)
{
return ix;
}
}
return -1;
}
int HalfSearch(int dat[],int kk,int len)//二分查找(折半查找)
{
int low=0,high=len-1,mid;
while(low<=high)
{
mid=(low+high)/2;
if(dat[mid]==kk)
{
return mid;
}
else if(dat[mid]>=kk)
{
high=mid-1;
}
else
{
low=mid+1;
}
}
return -1;
}
void InsertSort(int dat[],int len)//直接插入排序(第一个数不算)
{
for(int ix=2;ix!=len;++ix)
{
dat[0]=dat[ix];
for(int iy=ix-1;dat[iy]>dat[0];--iy)
{
dat[iy+1]=dat[iy];
}
dat[iy+1]=dat[0];
}
}
void ShellSort(int dat[], int len)//希尔排序(第一个数不算)
{
int increase;
for (increase=len/2; increase>=1; increase=increase/2) //以增量为increase进行直接插入排序
{
for (int ix=increase+1; ix<len; ix++)
{
dat[0]=dat[ix]; //暂存被插入记录
for (int jx=ix-increase; jx>0 && dat[0]<dat[jx]; jx=jx-increase)
{
dat[jx+increase]=dat[jx];//记录后移increase个位置
}
dat[jx+increase]=dat[0];
}
}
}
void BubbleSort(int dat[], int len)//起泡排序
{
for(int ix=1;ix<len;ix++)
{
for(int jx=0;jx<len-1;jx++)
{
if(dat[jx]>dat[jx+1])
{
int temp=dat[jx];
dat[jx]=dat[jx+1];
dat[jx+1]=temp;
}
}
}
}
void SelectSort(int dat[], int len)//选择法排序
{
int index;//索引
for (int ix=0; ix<len-1; ix++) //对n个记录进行n-1趟简单选择排序
{
index=ix;
for (int jx=ix+1; jx<len; jx++) //在无序区中选取最小记录
{
if (dat[jx]<dat[index])
{
index=jx;
}
}
if (index!=ix)
{
int temp=dat[ix];
dat[ix]=dat[index];
dat[index]=temp;
}
}
}
void Insert(int dat[],int len)//插入法排序
{
for(int ix=1;ix!=len;++ix)
{
int temp=dat[ix];
for(int jx=ix-1;dat[jx]>temp&&jx>=0;--jx)
{
dat[jx+1]=dat[jx];
}
dat[jx+1]=temp;
}
}