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
相关产品推荐
相关产品推荐

