專家通過多組情侶研究數據發現,最佳的情侶身高差遵循着一個公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你倆的身高差不管是牽手、擁抱、接吻,都是最和諧的差度。
下面就請你寫個程序,為任意一位用戶計算他/她的情侶的最佳身高。
輸入格式:
輸入第一行給出正整數N(≤10),為前來查詢的用戶數。隨后N行,每行按照“性別 身高”的格式給出前來查詢的用戶的性別和身高,其中“性別”為“F”表示女性、“M”表示男性;“身高”為區間 [1.0, 3.0] 之間的實數。
輸出格式:
對每一個查詢,在一行中為該用戶計算出其情侶的最佳身高,保留小數點后2位。
輸入樣例:
2 M 1.75 F 1.8
結尾無空行
輸出樣例:
1.61 1.96
結尾無空行
#include <stdio.h> #include <string.h> int main(){ int n; char a[11]; double b[11]; scanf("%d",&n); // getchar(); for(int i=0;i<n;i++){ scanf("\n%c%lf\n",&a[i],&b[i]); } for(int i=0;i<strlen(a);i++){ if(a[i]=='M'){ printf("%.2lf\n",b[i]*1.0/1.09); } if(a[i]=='F') printf("%.2lf\n",b[i]*1.09); } return 0; }
運行測試用例:
2
M 1.75
F 1.8
結果:
1.61
1.96
注意:%c:空格 和 轉義字符(比如'\n') 都作為有效字符,都會被c接收。題目要求輸入一個整數后跨行分別在每行輸入用戶信息,因此需要將\n給去掉,否則%c會將跨行符號算進去。
有兩種解決方法:
①在輸入時使用'\n'代替跨行,如scanf("\n%c",&c),這樣當第一行輸入整數后的跨行符號就不會被%c吃掉了。(在輸入換行鍵的地方加\n)
②用getchar()吃掉換行符號。
為什么一定要吃掉換行符號呢?
比如題目的測試用例,如果輸入2后換行,在%c之前沒有寫\n,那么讀入的數據將是,此時多出了0.0000出來,結果當然計算不出來
所以,這個地方需要注意這個%c的用法。