so?
by Po7ed @ 2024-01-14 09:17:39
你的这一行有问题,应该把这个改成那个
by slh123bc @ 2024-01-14 09:22:21
AC(经供参考)
```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:20:18
```cpp
for(int i=l-1, k = 0;i>=0;i--, k++){
if(s[i]<='9'&&s[i]>='0') ans += (s[i]-'0') * pow(n, k);// 乘以权重再相加
else ans += (s[i]-'A'+10) * pow(n, k);// 进制的次方依次递增
}
j.resize(100);// string j 时 j 为空,不能 j[++o]
```
by Sqj147 @ 2024-01-25 20:20:27