2201_75769176 2024-05-31 14:36 采纳率: 100%
浏览 3
已结题

关于#c语言#的问题:语音程序报错

img

img


第二张图片是题目,第一个是打的代码+输出的结果,想问问为啥这个输出的结果是?,而不是a啊

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-31 14:37
    关注

    引自免费微信小程序:皆我百晓生

    在您的代码中,您试图同时读取一个字符 m 和一个整数 n 使用 scanf_s("%c%d",&m,&n); 这一行。然而,在之前,您已经通过 getchar() 获取了一个字符,但是没有处理它。因此,当执行到 scanf_s("%c%d",&m,&n); 的时候,m 已经被之前的 getchar() 填充了,而接下来的 scanf_s 会尝试解析下一个输入作为整数。

    要解决这个问题,您可以删除不必要的 getchar() 行,并且对用户输入进行适当的处理。以下是修改后的代码:

    #include <stdio.h>
    
    int main() {
        float a, b;
        char m;
        int n;
    
        printf("please:");
        
        // Read the first float (in decimal form)
        scanf("%f", &a);
        
        // Read the second float (in exponential form)
        scanf("%f", &b);
    
        // Read the character 'm'
        scanf(" %c", &m); // 注意这里有一个空格,用于跳过前导空白字符
    
        // Read the integer 'n'
        scanf("%d", &n);
    
        printf("%f\n%f\n%c\n%d\n", a, b, m, n);
    
        return 0;
    }
    

    这段代码首先读取两个浮点数,然后读取一个字符,最后读取一个整数。注意在读取字符后加了一个空格 " ",这可以确保在读取字符时不会意外地包含上一个输入的换行符。运行这段代码后,你应该能正确地得到输入的值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 5月31日
  • 修改了问题 5月31日
  • 创建了问题 5月31日

悬赏问题

  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型