问题遇到的现象和发生背景
** printf("%c",m); ** 与 **cout<<m; ** 输出结果不一致是为什么?
问题相关代码,请勿粘贴截图
//printf("%c",m)的完整代码
#include<bits/stdc++.h>
using namespace std;
void convert(int n,int r)
{
if(n==0) return ;
int m=n%r;
if(m<0) {
m-=r;
n+=r;
}
if(m>=10) m='A'+m-10;
else m+='0';
convert(n/r,r);
printf("%c",m);
return ;
}
int main()
{
int n,r;
cin>>n>>r;
cout<<n<<"=";
convert(n,r);
cout<<"(base"<<r<<")";
return 0;
}
//cout<<m;的完整代码
#include<bits/stdc++.h>
using namespace std;
void convert(int n,int r)
{
if(n==0) return ;
int m=n%r;
if(m<0) {
m-=r;
n+=r;
}
if(m>=10) m='A'+m-10;
else m+='0';
convert(n/r,r);
cout<<m;
return ;
}
int main()
{
int n,r;
cin>>n>>r;
cout<<n<<"=";
convert(n,r);
cout<<"(base"<<r<<")";
return 0;
}
运行结果及报错内容
** printf("%c",m);的结果**

**cout<<m;的结果**
