【问题标题】:What are the bugs in my code? [closed]我的代码中有哪些错误? [关闭]
【发布时间】:2014-01-13 13:04:19
【问题描述】:

我想用 C 编写一个简单的程序,询问您的年龄,然后显示消息: “你X岁了!”

我无法找出以下代码中的错误:

#define <cini.h>
#define MY STRING "You are"

    int main() {
    int age;

    printf("How old are you?\n");
    if(scanf ("%d", age) != 1) {
    printf ("Error message\n");
    exit(1);

    }
    printf ("%s years old!\n", MY STRING, age);
    return 0;
    }

感谢您的帮助,祝您圣诞快乐!

【问题讨论】:

  • 如果看不懂,那就先学C吧。
  • @H2CO3 有点苛刻,但非常正确......好消息是您想要做的事情很简单,并且代码中的错误很容易让有经验的程序员发现和纠正。坏消息是,你可能不会仅仅通过查找和替换来学习任何东西。我建议查看一本书或探索有关 C 或其他编程语言的在线资源(C# 和 Python 非常酷,值得一看!)。从长远来看,这对你更好!另一个好消息是你可以很快学会编写这样的代码。这是非常基本的。编码愉快!

标签: c compiler-errors


【解决方案1】:

你错过了印刷时代:

printf ("You are %d years old!\n" age);

扫描值需要&amp;

if(scanf ("%d", &age) != 1)

你用空格定义了预处理器,空格在这里无效:

#define MY_STRING "You are"

【讨论】:

    【解决方案2】:

    您在scanf 参数之前错过了&amp;

    if(scanf ("%d", &age) != 1)
                    ^
                    |
                  Place & before age   
    

    还将您的宏 MY STRING 更改为 MY_STRING。而且您在上一个printf 中错过了%d 说明符

    使用:

    printf ("%s %d years old!\n", MY_STRING, age);  
    

    【讨论】:

    • 不仅如此,预处理器指令的名称中不能有空格。 “我的字符串”应该是“我的字符串”
    • @AlexReinking;谢谢。我错过了。
    • 谢谢,我要重写代码,再用调试工具看看有没有bug
    • 我不应该把#include cini.h 作为库而不是#define cini.h 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 2017-07-12
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    相关资源
    最近更新 更多