3.13、臭虫?

By | 2016年1月24日

为了练习我们上一篇文章中所学习的switch结构,让我们再写一个程序来熟悉一下

让我们来写一个简单的计算器

例如,让我们输入1+3,程序能自动计算,得到4的结果,那么这个需要怎么写呢?

显然,输入的信息由一个数字 后接一个字符,然后又是一个数字组成

我们很容易的想到,可以使用scanf来输入信息,使用”%d%c%d”这样的格式化字符串

请你自己写出程序,然后继续

下面给出的是一个例子

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a, b, result;
    int operators;
    printf("请输入一个算式:");
    scanf("%d %c %d", &a, &operators, &b);
    switch(operators)
    {
        case '+':
            result = a + b;
            break;
        case '-':
            result = a - b;
            break;
        case '*':
            result = a * b;
            break;
        case '/':
            result = a / b;
            break;
    }

    printf("%d\n", result);
    return 0;
}

让我们来运行一下这个程序

result

咦,结果怎么成了57呢?

让我们换一个算式再来试试

result2

仍然是57!显然我们的程序出了问题,但是问题在哪儿呢?(注意:如果你尝试自己编译运行上述程序,你可能会遇到结果不是57的情况

你能从上面的代码中找到它么?

我们称这种情况为代码里有了bug,或许你很久前就听说过了这种东西(比如和玩游戏的过程中听说它)。

bug在英文里的原意是“臭虫”,代码里面怎么可能有臭虫呢?

这便是我们下一章所要详细讲解的内容。

如果你不能找出上面代码的问题,别急,在下一篇文章中,我们就知道错误在哪儿了!

One thought on “3.13、臭虫?

发表评论

邮箱地址不会被公开。 必填项已用*标注