问题整理

进制转换

//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;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值