这是我正在做的家庭作业问题:
声明一个字符变量letterStart。编写一条语句,将用户的字母读入letterStart,后跟输出该字母和字母表中下一个字母的语句。以换行符结束。提示:一个字母被存储为它的ASCII数字,所以加1会得到下一个字母。假设用户输入'd':de
#include <stdio.h>
int main(void) {
char letterStart;
scanf("%c", letterStart);
printf("%c", letterStart);
printf("%c", letterStart + 1);
return 0;
}
您的输出=(未知字符)
而作业编译器想要测试'a',所以输出是ab。
有什么建议吗?
发布于 2018-08-17 05:55:59
你把&
符号忘在了
scanf("%c", letterStart);
让它:-
scanf("%c", &letterStart);
修改代码:-
#include <stdio.h>
int main(void) {
char letterStart;
scanf("%c", &letterStart);
printf("%c", letterStart);
printf("%c", letterStart + 1);
return 0;
}
输出:-
a
ab
发布于 2018-08-17 08:15:47
打开编译器警告:
$ gcc main.c -Wall -Wextra
main.c: In function ‘main’:
main.c:7:12: warning: format ‘%c’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=]
scanf("%c", letterStart);
^
main.c:7:4: warning: ‘letterStart’ is used uninitialized in this function [-Wuninitialized]
scanf("%c", letterStart);
^~~~~~~~~~~~~~~~~~~~~~~~
现在你看到了问题所在。更改为scanf("%c", &letterStart);
https://stackoverflow.com/questions/51885819
复制相似问题