C/C++ Error and Debug

2018/08/03 C/C++

C/C++程序语言设计 Error and Debug。

C/C++ 程序设计常见错误分析

  1. 没有定义变量。

     int main(){
         x = 3;
         y = 6;
         printf("%d\n", x+y);
     }
    
  2. 输入输出的数据类型与用户指定的输入输出格式声明不一致。

     int a = 6;
     float b = 4.5;
     printf("%f, %d\n", a, b);
    
  3. 没有考虑到int、short等数据类型的数值范围。例如short分配2个字节,所以整数范围是-32768至32767。

     int num;
     m = 89101;
     printf("%d", num);
    
  4. 使用输入函数scanf时,忘记用变量的取地址符号&。

     scanf("%d%d", a, b);
    
  5. 输入数据的形式与要求的不符。例如下面的片段,如果输入【3,4】是错误的。应用输入【3 4】,空格可以用回车代替。

     scanf("%d%d", &a, &b);
    
  6. 在用scanf函数向字符数组名输入数据的时候,在数组名前面多加了&。

     char a[20];
     scanf("%s", &a);
    
  7. 在使用scanf函数向数值型数组输入数据时,用数值型数组名。

     int a[20];
     scanf("%d", a);
    
  8. 语句后面漏掉分号。

     a = 3
     b = 4;
    
  9. 预处理语句写错或者是添加分号。

     #include <stdio.h>;
    
  10. 在不该加分号的地方加分号。

    if(a > b);
        printf("this is an error");
    
  11. 对于应该有花括号的复合语句,忘记加花括号。

    sum = 0;
    i = 1;
    while(i<=100)
        sum = sum + i;
        i++;
    
  12. 括号不匹配。

    while((c=getchar()!='#')
        putchar(c);
    
  13. 混淆大小写。

    int main(){
        int A, B, C;
        a = 2;
        b = 3;
        c = a + b;
        printf("%d+%d=%d\n", a, b, c);
    }
    
  14. 把“=”误认为“==”。

    if(score = 100)
        n++;
    
  15. 使用数组元素的时候使用了圆括号。

    int main(){
        int i, a(10);
        for(i=0;i<10;i++){
            scanf("%d", &a(i));
        }
    }
    
  16. 使用数组的时候越界。

    int main(){
        int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        for(int i=1;i<=10;i++)
            printf("%d", a[i]);
    }
    
  17. 二维数组的定义和引用方式不对。

    int main(){
        int a[5,4];
        printf("%d", a[1+2, 2+2]);
    }
    
  18. 误以为数组名代表数组中全部元素。

    int main(){
        int a[4] = {1, 3, 5, 7}, b[4];
        b = a;
    }
    
  19. 混淆字符数组与字符指针的区别。

    int main(){
        char str[4];
        str = "Computer and C";
        printf("%s\n", str);
    }
    
  20. switch语句中漏写break。

    switch(score){
        case 5: printf("Very Good!");
        case 4: printf("Good!");
        case 3: printf("Pass!");
        case 2: printf("Fail!");
        default: printf("data error!");
    }
    

Search

    Table of Contents