C/C++中输入输出格式那些事!!! cin cout scanf printf

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; 

猜你喜欢

转载自blog.csdn.net/IT_flying625/article/details/89428493