到底哪错了

#include<iostream>
using namespace std;
string s;
int _8to10(string s);
void _10to16(int x);
int main()
{
cin>>s;
int n10=_8to10(s);
_10to16(n10);
return 0;
}
int _8to10(string s)
{
int ans=0;
for(int i=0;i<s.size();i++)
{
ans=ans*8+s[i]-'0';
}
return ans;
}
void _10to16(int x)
{
long long t=0,a[1000000];
string ret="";
if(x==0) cout<<"0";
while(x)
{
a[++t]=x%16;
x=x/16;
}
for (int i=t;i>0;i--)
{
if (a[i]<10)
cout<<a[i];
else
cout<<char(a[i]+55);
}

}

2 条评论

  • 修改成这样:

    #include<bits/stdc++.h>
    using namespace std;
    string s;
    int _8to10(string s);//函数的声明
    string _10to16(int x);
    int main(){
        cin>>s;
        int n10=_8to10(s);
        cout<<_10to16(n10);
        return 0;
    }int _8to10(string s){//"765"
        int ans=0;
        for(int i=0;i<s.size();i++)ans=ans*8+s[i]-'0';
        return ans;
    }string _10to16(int x){
        if(x==0)return "0";
        string ret="";
        while(x!=0){
            if(x%16<10)ret=char(x%16+'0')+ret;
            else ret=char(x%16-10+'a')+ret;
            x/=16;
        }return ret;
    }
    
  • VOID
    
  • 1