如何发现程序中的错误

    假定你的程序编译通过(要当心警告),但运行错误,应该怎么处理呢?

一 你的脑子就是计算机,在脑子中运行并且检查你的程序。直接确定你的错误

二  如果第一步不行。尽可能准备充分的测试数据,让你程序的错误通过运行显现出来。

三  找到让程序出错的输入数据后,如何找到代码的错误之处?

1. 把你的脑子当计算机用,运行之

2. 使用printf在关键处输出其状态

3. 使用编译器提供的调试工具

3.1 codeblocks的调试

可以参见 http://blog.csdn.net/sxhelijian/article/details/15026159

 要点 (1)debug菜单 or debug 工具栏

       (2)设置断点(F5)

        (3) 开始调试(F8)

        (4) 用watches查看变量值(菜单debug/debug windows/watches)

        (5)结束调试(shift+F8)

       (6)单行执行(F7)

       (7)运行到光标处(F4)

        (8)进入/退出函数

 示例一:

#include <stdio.h>

int main(void)
{
    int a, b;
    scanf("%d %d", a, b);
    printf("%d ", a + b);
    return 0;
}

 

示例二

 

#include <stdio.h>

int main(void)
{
    int sum, n;
    int i;

        scanf("%d", &n);
    for(i = 1; i <= n; i++)
        sum += i;

    printf("%d ", sum);
    return 0;
}

 

示例三:

#include <stdio.h>

int main(void)
{
    int sum = 0, n;
    int i;

    while(scanf("%d", &n) != EOF) {
        for(i = 1; i <= n; i++)
            sum += i;
        printf("%d\n", sum);
    }
    return 0;
}

 

 

 

示例:

 

 1 #include<stdio.h>
 2 int is_prime(int n)
 3 {
 4    int i;
 5 
 6    for(i = 2; i * i < n; i++)
 7    //for(i = 2; i * i <= n; i++)
 8       if(n % i == 0)
 9          return 0;
10    return 1;
11 }
12 
13 void test(void)
14 {
15    int i;
16    for(i = 2; i <= 16; i++){
17       printf("%d is %s a prime\n", i, is_prime(i) ? "" :"not ");
18    }
19 }
20 
21 int main(void)
22 {
23    test();
24    return 0;
25 }

 

posted on 2015-12-24 10:50 天地过客 阅读(...) 评论(...) 编辑 收藏

导航

公告