You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言如何让最后一条printf语句正确输出用户输入的x和y值

代码问题修正说明

你的代码存在以下几处错误,调整后即可实现预期效果:

  • main函数返回值不符合C语言标准,需改为int类型,不能使用char
  • 前两个printf语句的格式化字符串没有占位符,多余传入的x、y参数可以直接删除
  • 你声明的char y是单字符类型,无法存储完整的姓氏字符串,也不能匹配%s格式符;且你预先定义的char string[100]数组没有被使用,可以直接用对应长度的数组存储姓氏
  • 使用%s读取字符串时,不需要加取地址符&,数组名本身就代表内存首地址

修正后的完整代码如下:

#include <stdio.h>

int main()
{
    char x;
    printf("Please enter your first initial:");
    scanf("%c", &x);

    char y[100];
    printf("Please enter your last name:");
    scanf("%s", y);

    printf("Hello I am %c %s. Nice to meet you.", x, y);

    return 0;
}

如果要避免输入首字母后残留的换行符影响后续输入,可以把首字母读取的scanf改为scanf(" %c", &x),在%c前加一个空格,即可自动跳过前导空白字符。

内容的提问来源于stack exchange,提问作者Daniel Bland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:24:03