进制转换
//p进制转十进制(p93)
int rev_ten(int x,int p){
int y=0,pro=1;
while(x!=0){
y=y+(x%10)*pro;
x/=10;
pro=pro*p;
}
return y;
}
//p进制转十进制(数量过大,或进制大于10)
map<char,int>mp;
//下列赋值在main函数内写
mp[‘A’]=10;mp[‘B’]=11;mp[‘C’]=12;mp[‘D’]=13;mp[‘E’]=14;mp[‘F’]=15;
char a[100];
int rev_ten(int n,int p){
int y=0;
for(int i=0;i<n;i++){
if(a[i]<=’9’&&a[i]>=’0’) y=y*p+(a[i]-‘0’);
else if(a[i]<=’F’&&a[i]>=’A’) y=y*p+mp[a[i]];
}
return y;
}
//十进制转p进制(p93)(大于10的进制要换用下一种方法)
int rev_p(int x,int p){
int y=0,pro=1;
while(x!=0){
y=y+(x%p)*pro;
x/=p;
pro=pro*10;
}
return y;
}
//十进制转p进制(进制较低,数字较大)
int res[100]={0}; //res[0]为最低位 输出时反向输出
int num;
//char a[17]=”0123456789ABCDEF”; //17最后一个是’\0’
//char res[100]; //转大于10,如16进制的写法
void rev_p(int x,int p){
num=0;
while(x!=0){
res[num++]=(x%p);
//res[num++]=a[x%p]; //转16进制的写法
x/=p;
}
}
发泡排序
#include <iostream>
using namespace std;
void insert_sort(int *a){
int i,j,t;
for(i=1;i<8;i++) {
t=a[i];
for(j=i-1;j>=0;j--)
if(t<a[j]) {
a[j+1]=a[j];
}
//解决方法,在下面加上else break;
else break;
//问题出在这里,设想数组排序过程中, 左边已排好序的三个数1, 2, 3
//目前正在排序的是a[3] = 4, 按照代码的运行,最后j=-1时 执行下面语句a[j+1]=4,则数组前4位变成4,2,3,4
//解决方法即上面加的一句else break;, 当判断 t = 4>a[2]=3时就停下来,此时j=2, a[j+1]=a[3]=4
a[j+1]=t;
}
}
int main()
{int a[8];
int i,n;
for(i=0;i<8;i++)
cin>>a[i];
insert_sort(a);
cout<<"排序后:"<<endl;
for(i=0;i<8;i++)
cout<<a[i]<<"--";
}
文件读取
关于文件读取的
#include "fstream"
#include "iostream"
#include "cstring"
#include "cstdlib"
#include "ctime"
using namespace std;
int main()
{ string english[10];
string chinese[10];
//int max, pos, i, n=0;
ifstream in("data.txt", ios::in); //打开ASCII文件
if(!in )
{cerr<<"open error!"<<endl; //打开文件错
exit(1);
}
string temp;
int i = 0;
while(getline(in, temp))
{
if(i<10) english[i] = temp;
else chinese[i-10] = temp;
i++;
}
for(int i=0; i<10; i++)
cout<<english[i]<<endl;
}