目录
1.A+B问题
#include<bits/stdc++.h>
using namespace std;
int main(){
int A,B;
cin>>A>>B;
cout<<A+B<<endl;
return 0;
}
2.数列排序
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。
输出一行,按从小到大的顺序输出排序后的数列。
- 冒泡排序法:基本原理是两两比较待排序数据的大小 ,当两个数据的次序不满足顺序条件时即进行交换,反之,则保持不变,这样每次最小(或最大)的结点就像气泡一样浮到序列的最前位置。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n];
for(int i=0; i<n;i++){
cin>>a[i];
}
//COMPARE
int temp=0;
for(int i=0; i<n-1; i++){//-1防止数组角标越界
for(int j=0; j<n-i-1; j++){
if(a[j+1]<a[j]) {
//temp=a[j+1];
//a[j+1]=a[j];
//a[j]=temp;
swap(a[j+1],a[j]);
}
}
}
for(int i=0; i<n;i++){
cout<<a[i]<<" " ;
}
return 0;
}
3.十六进制转八进制
给定n个十六进制正整数,输出它们对应的八进制数。
- 十六进制:0~9 A~F 0000~1111
- 八进制:0~7 000~111
C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。
strcpy(Arry_eight,Arrx.c_str());
#include<bits/stdc++.h>
using namespace std;
//二进制-八进制
void transform_8(string Arrx) {
int n;
n=Arrx.length();
//检查是否需要补0
if(n%3==1) Arrx = "00"+Arrx;
else if(n%3==2) Arrx = "0"+Arrx;
//更新长度
n=Arrx.length();
char Arry_eight[n];
//C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。
strcpy(Arry_eight,Arrx.c_str());
int i,j;
//八进制位数
i=n/3;
//字符数组对应的八进制位数,数组从0开始计数
j=i-1;
//数组前三均为0,则八进制此处为0,不在记录
if(Arry_eight[0]=='0'&&Arry_eight[1]=='0'&&Arry_eight[2]=='0') {
j--;
i--;
}
//八进制的个数为i
char Arrx_eight[i];
//3位一组
int x, y, z;
x=n-1;
y=n-2;
z=n-3;
for(int k= i; k>0; k--){
if(Arry_eight[z]=='0'&&Arry_eight[y]=='0'&&Arry_eight[x]=='0') Arrx_eight[j]='0';
else if(Arry_eight[z]=='0'&&Arry_eight[y]=='0'&&Arry_eight[x]=='1') Arrx_eight[j]='1';
else if(Arry_eight[z]=='0'&&Arry_eight[y]=='1'&&Arry_eight[x]=='0') Arrx_eight[j]='2';
else if(Arry_eight[z]=='0'&&Arry_eight[y]=='1'&&Arry_eight[x]=='1') Arrx_eight[j]='3';
else if(Arry_eight[z]=='1'&&Arry_eight[y]=='0'&&Arry_eight[x]=='0') Arrx_eight[j]='4';
else if(Arry_eight[z]=='1'&&Arry_eight[y]=='0'&&Arry_eight[x]=='1') Arrx_eight[j]='5';
else if(Arry_eight[z]=='1'&&Arry_eight[y]=='1'&&Arry_eight[x]=='0') Arrx_eight[j]='6';
else if(Arry_eight[z]=='1'&&Arry_eight[y]=='1'&&Arry_eight[x]=='1') Arrx_eight[j]='7';
j--;
x-=3;
y-=3;
z-=3;
}
for(int p=0; p<i; p++){
cout<<Arrx_eight[p];
}
cout<<endl;
}
//十六进制-二进制
void transform_2(char num[], int n){
string Arry[n];
string Arrx;
for(int i=0; i<n; i++){
//如果为数字
if(num[i]=='0'||num[i]=='1'||num[i]=='2'||num[i]=='3'||num[i]=='4'
||num[i]=='5'||num[i]=='6'||num[i]=='7'||num[i]=='8'||num[i]=='9'){
if(num[i]=='0' && i!=0) Arry[i]="0000";
if(num[i]=='1') Arry[i]="0001";
if(num[i]=='2') Arry[i]="0010";
if(num[i]=='3') Arry[i]="0011";
if(num[i]=='4') Arry[i]="0100";
if(num[i]=='5') Arry[i]="0101";
if(num[i]=='6') Arry[i]="0110";
if(num[i]=='7') Arry[i]="0111";
if(num[i]=='8') Arry[i]="1000";
if(num[i]=='9') Arry[i]="1001";
}
else if(num[i]=='A' || num[i]=='a') Arry[i]="1010";
else if(num[i]=='B' || num[i]=='b') Arry[i]="1011";
else if(num[i]=='C' || num[i]=='c') Arry[i]="1100";
else if(num[i]=='D' || num[i]=='d') Arry[i]="1101";
else if(num[i]=='E' || num[i]=='e') Arry[i]="1110";
else if(num[i]=='F' || num[i]=='f') Arry[i]="1111";
}
//字符串合并
for(int i=0; i<n; i++) {
Arrx += Arry[i];
}
//转换成八进制
transform_8(Arrx);
}
int main(){
int n;
//n行