ASCII码排序
Problem Description
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Sample Input
qwe
asd
zxc
Sample Output
e q w
a d s
c x z
这个题注意char类型可以自动转换成int类型,因此可以直接比较大小,这样题目就变成三个数比较大小要求从小到大输出
#include<iostream>
using namespace std;int main(){char a,b,c,d;while(cin>>a>>b>>c){if(a>b){d = a;a = b;b = d;}if(b>c){d = b;b =c;c = d;}if(a>b){d = a;a = b;b = d;}cout<<a<<" "<<b<<" "<<c<<endl;}
}
计算两点间的距离
Problem Description
输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。
Input
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
Output
对于每组输入数据,输出一行,结果保留两位小数。
Sample Input
0 0 0 1
0 1 1 0
Sample Output
1.00
1.41
此题注意开根号可以使用sqrt()函数,需要导入#include<cmath>。要保留两位小数可以使用cout<<setiosflags(ios::fixed)<<setprecision(2) ,如果单独使用cout<<setprecision(2)表示保留两位有效数字,需要导入#include<iomanip>。
#include<iostream>
#include <iomanip>
#include<cmath>
using namespace std;int main(){double x1,y1,x2,y2,distence;while(cin>>x1>>y1>>x2>>y2){distence = sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));cout<<setiosflags(ios::fixed)<<setprecision(2)<<distence<<endl;}
}