当前位置: 代码迷 >> 综合 >> 杭电OJ100题——2000、2001(C++版)
  详细解决方案

杭电OJ100题——2000、2001(C++版)

热度:14   发布时间:2023-12-15 13:38:13.0

                                         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;}
}
  相关解决方案