1082 射击比赛 PAT (Basic Level)
程序员文章站
2024-02-02 22:59:16
题目链接: https://pintia.cn/problem-sets/994805260223102976/problems/994805260990660608 分析: 这是典型的给出编号和得分然后输出最高分和最低分的题目,只不过得分要通过x和y计算得到。 本人利用字符数组存放运动员的编号,这 ......
题目链接:
分析:
这是典型的给出编号和得分然后输出最高分和最低分的题目,只不过得分要通过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 }
上一篇: 网络协议 15 - P2P 协议
下一篇: 四顶点校正透视变换的线性方程解(转载)
推荐阅读
-
1082 射击比赛 PAT (Basic Level)
-
PAT (Basic Level) Practice (中文)1001
-
1083 是否存在相等的差 PAT (Basic Level)
-
PAT (Basic Level) Practice (中文)1009 说反话 (20 分)
-
PAT (Basic Level) Practice 1009 说反话 (20 分)
-
PAT (Basic Level) Practice (中文)1009 说反话 (20)
-
PAT(basic-level)练习-1002
-
PAT Basic Level 1066 图像过滤 (15 分)
-
PAT (Basic Level) Practice (中文)1066 图像过滤 (15 分)(C实现)
-
1066 图像过滤 (15 分)—PAT (Basic Level) Practice (中文)