窝的思路没戳啊?为什么会跑不起来? 在线求助
#include<bits/stdc++.h>
using namespace std;
int szzh(char c){//字符转数字自定义函数
int rt;
switch(c){
case '1':rt=1;break;
case '2':rt=2;break;
case '3':rt=3;break;
case '4':rt=4;break;
case '5':rt=5;break;
case '6':rt=6;break;
case '7':rt=7;break;
case '8':rt=8;break;
case '9':rt=9;break;
case '0':rt=0;break;
case 'A':rt=10;break;
case 'B':rt=11;break;
case 'C':rt=12;break;
case 'D':rt=13;break;
case 'E':rt=14;break;
case 'F':rt=15;break;
}
return rt;
}
char szzh2(int c){//数字转字符自定义函数
char rt;
switch(c){
case 1:rt='1';break;
case 2:rt='2';break;
case 3:rt='3';break;
case 4:rt='4';break;
case 5:rt='5';break;
case 6:rt='6';break;
case 7:rt='7';break;
case 8:rt='8';break;
case 9:rt='9';break;
case 0:rt='0';break;
case 10:rt='A';break;
case 11:rt='B';break;
case 12:rt='C';break;
case 13:rt='D';break;
case 14:rt='E';break;
case 15:rt='F';break;
}
return rt;
}
int main(){
int jz1=0,l=0,jz2=0,jw=0,sy,i;//jz1为最开始数字的进制,l是数字长度,jz2是需要转换的进制,jw保存进位,sy是数组前面第一个非0数字的索引
string n="";//字符串处理数字,更方便
cin>>jz1>>n>>jz2;
l=n.length();
int an[31];//最长的2进制10的9次也只需要31位保存
for(i=0;i<=l-1;i++){//将字符串转数组后保存在an里
an[31-i]=szzh(n[i]);
}
for(i=0;i<=l-1;i++){//进制转换
an[31-i]+=pow(jz1,i)*an[31-i]+jw;
jw=an[31-i]/jz2;
an[31-i]%=jz2;
}
for(i=0;i<=l-1;i++){//获取第一个非0数位的索引/位置
if(an[i]!=0){
sy=i;
break;//找到了跳出,避免变成数字中0
}
}
for(int i=sy;i<=l-1;i++){//数字转字符输出
cout<<szzh2(an[i]);
}
return 0;
}```
有注释,DALAO应该很块就能找到错误把?