杭电ACM2000-2019
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.
Problem Description
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Sample Input
qwe
asd
zxc
Sample Output
e q w
a d s
c x z
方案:
#include
int main()
{
char str[4],t;
while(scanf("%s",&str)!=EOF)
{
for(int i=0;i<2;i++)
{
if(str[i]>str[i+1])
{
t=str[i];
str[i]=str[i+1];
str[i+1]=t;
}
if(str[0]>str[2])
{
t=str[0];
str[0]=str[2];
str[2]=t;
}
}
printf("%c %c %c\n",str[0],str[1],str[2]);
}
}
2.
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
答案:
#include
#include
void main()
{
double a,b,c,d;
double e;
while(scanf("%lf %lf %lf %lf",&a,&b,&c,&d)!=EOF)
e=sqrt((d-b)*(d-b)+(c-a)*(c-a));
printf("%.2lf\n",e);
}
}
3.
Problem Description
根据输入的半径值,计算球的体积。
Input
输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。
Output
输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
Sample Input
1
1.5
Sample Output
4.189
14.137
Hint
#define PI 3.1415927
答案:
#include
#define PI 3.1415927
void main()
{
double i;
double j;
while(scanf("%lf",&i)!=EOF)
{
j=(4.0/3.0)*PI*i*i*i;
printf("%.3lf\n",j);
}
4.
Problem Description
求实数的绝对值。
Input
输入数据有多组,每组占一行,每行包含一个实数。
Output
对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数。
Sample Input
123
-234.00
Sample Output
123.00
234.00
答案:
#include
#include
void main()
{
double i,j;
while(scanf("%lf",&i)!=EOF)
{
j=sqrt(i*i);
printf("%.2lf\n",j);
}
}
5.
Problem Description
输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;
Input
输入数据有多组,每组占一行,由一个整数组成。
Output
对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
Sample Input
56
67
100
123
Sample Output
E
D
A
Score is error!
答案:
#include
void main()
{
int i;
while(scanf("%d",&i)!=EOF)
{
char grade;
if(i>0&&i<60)
grade='E';
else if(i>=60&&i<70)
grade='D';
else if(i>=70&&i<80)