AC(c语言)
```c
# include <stdio.h>
# include <string.h>
int qiushijinzhi(int n,char* a) //第一个函数
{
int b=1;int shijinzhi=0;
for(int i=strlen(a)-1;i>=0;i--)
{
if(a[i]>='0'&&a[i]<='9')
{
shijinzhi=shijinzhi+(a[i]-'0')*b;
b=b*n;
}
else
{
shijinzhi=shijinzhi+(a[i]-'A'+10)*b;
b=b*n;
}
}
return shijinzhi;
}
void zhuanhuan(int b_,int shijinzhi) //第二个函数
{
int g=0;
char d[17]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char f[1000]={"1"};
while(shijinzhi)
{
int n=shijinzhi%b_;
shijinzhi=shijinzhi/b_;
f[g]=d[n];
g++;
}
for(int i=g-1;i>=0;i--)
{
printf("%c",f[i]);
}
}
int main ()
{
int n;scanf("%d",&n);
char a[1000];scanf("%s",a);
int b_;scanf("%d",&b_);
int shijinzhi=qiushijinzhi(n,a); //求转化十进制数
zhuanhuan(b_,shijinzhi); //求所需进制数
return 0;
}
```
by timmyliao @ 2024-01-14 10:31:20
第一个for里面的语句,减A后加的应该是10而不是11
后面的代码我没细看,估计是同样的问题
by weifeng_yuhuo @ 2024-01-14 10:40:56