L1-040 最佳情侣身高差——%c的用法

#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 会读取任何字符(包括空格和换行符),因此需要在格式字符串前加一个空格,以跳过前导空白字符。
  • 全部评论

    相关推荐

    评论
    点赞
    收藏
    分享

    创作者周榜

    更多
    牛客网
    牛客企业服务