刷题记录:
题目1及代码如下:
/*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<stdio.h>
#include<math.h>
int main()
{
double a,b,c,d,m,n,i;
while(scanf("%lf %lf %lf %lf",&a,&b,&c,&d)!=EOF){
m=fabs(c-a);
n=fabs(d-b);
i=sqrt(m*m+n*n);
printf("%.2lf\n",i);
}
return 0;
}
题目2及代码如下:
/*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<stdio.h>
int main()
{
int t;
while(scanf("%d",&t)!=EOF){
if(t==100){
printf("A\n");
}else if(-10<=t&&t<0){
printf("Score is error!\n");
}
else{
t=t/10;
switch(t){
case 0:
printf("E\n");
break;
case 1:
printf("E\n");
break;
case 2:
printf("E\n");
break;
case 3:
printf("E\n");
break;
case 4:
printf("E\n");
break;
case 5:
printf("E\n");
break;
case 6:
printf("D\n");
break;
case 7:
printf("C\n");
break;
case 8:
printf("B\n");
break;
case 9:
printf("A\n");
break;
default:
printf("Score is error!\n");
break;
}
}
}
return 0;
}
题目3及代码如下:
/*Problem Description
给你n个整数,求他们中所有奇数的乘积。
Input
输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
Output
输出每组数中的所有奇数的乘积,对于测试实例,输出一行。
Sample Input
3 1 2 3
4 2 3 4 5
Sample Output
3
15*/
#include<stdio.h>
int main()
{
int n,sum=1,i,p;
while(~scanf("%d",&n)){
for(i=0;i<n;i++){
scanf("%d",&p);
if(p%2==1)
sum*=p;
}
printf("%d\n",sum);
sum=1;
}
return 0;
}
题目4及代码如下:
/*计算m~n(m<=n)之间自然数数列的和。如m和n如果是3和10,则是求数列3+4+5+......+9+10的和。
输入格式:
在一行中输入2个正整数m和n,0<=m<=n。
输出格式:
输出数列和。
输入样例:
3 10
结尾无空行
输出样例:
在这里给出相应的输出。例如:
sum = 52
结尾无空行*/
#include<stdio.h>
int main()
{
int m,n,sum=0;
scanf("%d %d",&m,&n);
while(m<=n){
sum+=m;
m++;
}
printf("sum = %d",sum);
return 0;
}