7-32 最佳情侶身高差 (10 分)


專家通過多組情侶研究數據發現,最佳的情侶身高差遵循着一個公式:(女方的身高)×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的用法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM