C/C++中输入输出格式那些事!!! cin cout scanf printf
进制转换那些事:
https://vjudge.net/problem/HDU-2031
#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<stack>
#include<algorithm>
#include<map>
#include<set>
#include<cmath>
#include<queue>
using namespace std;
string res;
int s[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int trans(int n,int r)
{
int i=0;
while(n)
{
res[i]=n%r;
n/=r;
i++;
}
return i;
}
int main()
{
int n,r;
while(cin>>n>>r)
{
if (n<0)
{
cout<<"-";
n=-n;
}
int cnt=trans(n,r);
while(cnt--)
{
printf("%c",s[res[cnt]]);
}
cout<<endl;
}
return 0;
}
进制格式读入:
https://vjudge.net/problem/HDU-2057
#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<stack>
#include<algorithm>
#include<map>
#include<set>
#include<cmath>
#include<queue>
using namespace std;
int main()
{
long long int a,b;
while(cin>>hex>>a>>b)
{
long long c=a+b;
if (c<0)
{
//cout<<c<<endl;
printf("-%llX\n", abs(c));
}
else
{
//cout<<c<<endl;
printf("%llX\n", c);
}
}
return 0;
}
四舍五入:
保留整数 int a = b+0.5;
保留一位小数 int a=(b+0.05)*10;
double c=a/10;
保留二位小数 int a=(b+0.005)*100;
double c=a/100;
以上仅适用于正数
强制保留两位小数:include<iomanip>
cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<endl;