当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 1082 射击比赛 PAT (Basic Level)

1082 射击比赛 PAT (Basic Level)

2019年08月28日  | 移动技术网IT编程  | 我要评论

啤酒鸭的制作方法,潜江,阳谷二手房

题目链接:

分析:

这是典型的给出编号和得分然后输出最高分和最低分的题目,只不过得分要通过x和y计算得到。

本人利用字符数组存放运动员的编号,这样具有通用性,但是本题保证编号是4位数字,所以也可用整型变量来存,但要考虑输出时的%04d的形式。

如果采用字符数组,则需要考虑输入字符串和输入整数之间可能存在多余的空白符,可以通过%*c过滤。

根据平面内两点之间的距离公式可以得到r2=x2+y2,考虑到r2的大小关系可以代表r的大小关系,所以直接计算r2即可,避免使用sqrt()函数。

ac代码:

 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 int main(void)
 5 {
 6     int n=0,x=0,y=0,min=88888,max=-1;
 7     char s[8]="",s1[8]="",s2[8]="";
 8     scanf("%d",&n);
 9     while(n--)
10     {
11         scanf("%*c%s%d%d",s,&x,&y);
12         x=x*x+y*y;
13         if(x<min)
14             min=x,strcpy(s1,s);
15         if(x>max)
16             max=x,strcpy(s2,s);
17     }
18     printf("%s %s",s1,s2);
19     return 0;
20 }

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网