#include <stdio.h>
int main() {
int N; // 查询的用户数
char gender; // 性别
double height; // 身高
double partner_height; // 情侣的最佳身高
scanf("%d", &N); // 输入用户数
for (int i = 0; i < N; i++) {
scanf(" %c %lf", &gender, &height); // 输入性别和身高
if (gender == 'F') { // 如果是女性
partner_height = height * 1.09; // 计算男性的最佳身高
} else if (gender == 'M') { // 如果是男性
partner_height = height / 1.09; // 计算女性的最佳身高
}
printf("%.2f\n", partner_height); // 输出结果,保留两位小数
}
return 0;
}
scanf 的格式字符串:%s 用于读取字符串,而 xb 是一个 char 类型的变量,只能存储单个字符。当你使用 %s 时,scanf 会尝试读取一个字符串(以空格或换行符结束),并将其存储到 xb 的地址中。这会导致内存越界,因为 xb 只能存储一个字符。应该使用 %c 来读取单个字符。注意:%c 会读取任何字符(包括空格和换行符),因此需要在格式字符串前加一个空格,以跳过前导空白字符。