存一些c++代码
以待不时之需
1.选择排序
/*选择排序*/
#include <iostream>
using namespace std;
int main()
{
int i,j,min,temp,a[5];
cout<<"输入数据"<<endl;
for(i=0;i<5;i++)
{
cout<<"a["<<i<<"]="; //输入数据,存在数组中
cin>>a[i];
}
cout<<endl<<"原数为"<<endl;
for(i=0;i<5;i++)
cout<<a[i]<<" "; //输出数组,显示
cout<<endl;
for(i=0;i<5;i++)
{
min=i;
for(j=i+1;j<5;j++)
if(a[min]>a[j]) //排序,将最小值下标放在min,只要出现比a[min]小的就和a[min]交换,始终让a[min]储存最小值
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
cout<<endl<<"排序后数据为"<<endl;
for(i=0;i<5;i++)
cout<<a[i]<<" "; //输出排序后的数组
cout<<endl;
return 0;
}
2.结合函数的选择排序
#include <iostream>
using namespace std;
int main()
{
void select_sort(int a[],int n); //函数声明
int i,a[5];
cout<<"输入数组"<<endl;
for(i=0;i<5;i++)
{
cout<<"a["<<i<<"]="; //输入数据,存在数组中
cin>>a[i];
}
cout<<endl<<"原数组为"<<endl;
for(i=0;i<5;i++)
cout<<a[i]<<" "; //输出数组,显示
cout<<endl;
select_sort(a,5); //调用函数
cout<<endl<<"排序后数组为"<<endl;
for(i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
void select_sort(int a[], int n)
{
int i,j,temp,min;
for(i=0;i<4;i++)
{
min=i;
for(j=i+1;j<5;j++)
if(a[min]>a[j]) //排序,将最小值下标放在min,只要出现比a[min]小的就和a[min]交换,始终让a[min]储存最小值
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
3.折半调换顺序
/*折半调换顺序*/
#include <iostream>
using namespace std;
int main()
{
const int n=5;
int a[n],i,temp;
cout<<"enter array a"<<endl;
for(i=0;i<n;i++)
cin>>a[i];
cout<<"array a:"<<endl;
for(i=0;i<n;i++)
cout<<a[i]<<" ";
for(i=0;i<n/2;i++)
{
temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp;
}
cout<<endl<<"Now, array a:"<<endl;
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
4.折半查找
/*折半查找*/
#include <iostream>//注意整个程序中标志变量的使用,如flag,sign
using namespace std;
int main()
{ const int n=15;
int i,number,top,bott,mid,loca,a[n];
bool flag=true,sign;
char c;
cout<<"enter data:"<<endl;;
cin>>a[0];
i=1;
while(i<n)
{cin>>a[i];
if (a[i]>=a[i-1])
i++;
else
cout<<"enter this data again:";//要求输入有序数组
}
cout<<endl;
for (i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
while(flag)
{cout<<"input number to look for:";
cin>>number;
sign=false;
top=0; //top是查找区间的起始位置
bott=n-1; //bott是查找区间的最末位置
if ((number<a[0])||(number>a[n-1])) //要查的数不在查找区间内
loca=-1; // 表示找不到
while ((!sign) && (top<=bott))
{mid=(bott+top)/2;
if (number==a[mid])
{loca=mid;
cout<<"Find "<<number<<", its position is "<<loca+1<<endl;//注意输出位置时下标加1
sign=true;
}
else if (number<a[mid])
bott=mid-1;
else
top=mid+1;
}
if(!sign||loca==-1)
cout<<number<<" has not found."<<endl;;
cout<<"continu or not(Y/N)?";
cin>>c;
if (c=='N'||c=='n')
flag=false;
}
return 0;
}
5.字符数组的调换顺序
/*字符数组的调换顺序*/
#include <iostream>
using namespace std;
int main()
{ const n=10;
int i;
char a[n],temp;
cout<<"please input a string:";
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n/2;i++)
{temp=a[i];a[i]=a[n-i-1];a[n-i-1]=temp;}
for(i=0;i<n;i++)
cout<<a[i];
cout<<endl;
return 0;
}
6.字符串的调换顺序
/*字符串的调换顺序*/
#include <iostream>
#include <string>
using namespace std;
int main()
{ string a;
int i,n;
char temp;
cout<<"please input a string:";
cin>>a;
n=a.size();
for(i=0;i<n/2;i++)
{temp=a[i];a[i]=a[n-i-1];a[n-i-1]=temp;}
cout<<a<<endl;
return 0;
}
c++真难〒▽〒