題目鏈接: https://pintia.cn/problem-sets/994805260223102976/problems/994805260990660608 分析: 這是典型的給出編號和得分然後輸出最高分和最低分的題目,只不過得分要通過x和y計算得到。 本人利用字元數組存放運動員的編號,這 ...
題目鏈接:
https://pintia.cn/problem-sets/994805260223102976/problems/994805260990660608
分析:
這是典型的給出編號和得分然後輸出最高分和最低分的題目,只不過得分要通過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 }