C语言常见错误

1.变量类型出错

#include 
#include 

int main()
{
    int a;
    scanf("%s",&a);
    printf("%lf\n",a);
    return 0;
}

定义的为double,输入输出应该用%d。

2.漏掉分号“;”

#include 
#include 

int main()
{
    int a
    scanf("%d",&a);
    printf("%d\n",a)
    return 0;
}

printf后面漏掉分号,int后面漏掉分号。

3.大小写错误

#include 
#include 

int main()
{
    int a;
    sCanf("%d",&a);
    printf("%d\n",a);
    return 0;
}

4.相似字符

i "小写的i"      I"大写的i"  还有i与j

l‘小写的L’  L "大写的"  

1    "数字1"

#include 
#include 

int main()
{
    double a;
    scanf("%lf",&a);
    printf("%1f\n",a);
    return 0;
}

聪明的你能不能发现哪个字符用差了? 

5.输入后数据不对

scanf语句漏掉了&

#include 
#include 

int main()
{
    int a;
    scanf("%d",a);
    printf("%d\n",a);
    return 0;
}

 漏掉了&,程序仍可以运行,不会报错,但是运行结果一定出错,要特别注意。

6.for语句使用错误

①符号错误,分号用成逗号

#include 
#include 

int main()
{
    int a,i;
    for(i=1,i<=a,i++)
    printf("%d\n",i);
    return 0;
}

 for条件判断应为分号。

②大括号{}错误

#include 
#include 

int main()
{
    int a,i,sum;
    sum=0;
    for(i=1;i<=10;i++)
    sum+=i;
    printf("前%d项和为%d\n",i,sum);
    printf("前十项和为%d\n",sum);
    return 0;
}



正确写法
#include 
#include 

int main()
{
    int a,i,sum;
    sum=0;
    for(i=1;i<=10;i++)
    {
    sum+=i;
    printf("前%d项和为%d\n",i,sum);
    }
    printf("前十项和为%d\n",sum);
    return 0;
}

若for循环里只有一条执行命令,则大括号可以不加,但若有两条以上,需要加到括号,否则默认执行第一句;第二句单独执行。 

③for后面加了分号

#include 
#include 

int main()
{
    int a,i;
    for(i=1,i<=a,i++);
    printf("%d\n",i);
    return 0;
}

7.错用中文符号

#include 
#include 

int main()
{
    int a,i,sum;
    sum=0;
    for(i=1;i<=10;i++)
    {sum+=i;
    printf("前%d项和为%d\n",i,sum);}
    printf("前十项和为%d\n",sum);
    return 0;
}

定义变量i时后面用的中文的逗号;for条件里面用的中文的分号。 

8.if语句错误

①条件错误

#include 
#include 

int main()
{
    int a,i;
    scanf("%d",a);
    for(i=1;i<=10;i++)
    {
       if(a=i)
        {
         printf("%d\n",a);
        }


    }
    return 0;
}

判断条件出错,在C语言中 “=”代表赋值符号,“==”代表等号,条件应该为if(a==i)。

②大括号错误

if语句大括号用法与for一致。

③if——else出错

int main()
{
  double a,b,r;
  scanf("%lf",&a);
  if(a<=1000)
  {
   b=0;
  }

   else if(a>1000&&a<=2000)
   b=0.05*(a-1000);

   else if(a>2000&&a<=3000)
   b=50+(a-2000)*0.1;

   else if(a>3000&&a<=6000)
   b=150+(a-3000)*0.15;

   else 
   {b=300+(a-6000)*0.2;}
   r=a-b;
   printf("个人所得税=%.2lf,实际报酬=%.2lf\n",b,r);
   return 0;
}

此处的else与上一行else if为一对,若条件不满足else if的判断条件,则执行else中的内容。应改为

int main()
{
  double a,b,r;
  scanf("%lf",&a);
  if(a<=1000)
  {
   b=0;
  }

   else if(a>1000&&a<=2000)
   b=0.05*(a-1000);

   else if(a>2000&&a<=3000)
   b=50+(a-2000)*0.1;

   else if(a>3000&&a<=6000)
   b=150+(a-3000)*0.15;

   else if(a>6000)
   {b=300+(a-6000)*0.2;}
   r=a-b;
   printf("个人所得税=%.2lf,实际报酬=%.2lf\n",b,r);
   return 0;
}

 ④if后面加分号

int main()
{
  double a,b,r;
  scanf("%lf",&a);
  if(a<=1000);
  {
   b=0;
  }

   else if(a>1000&&a<=2000);
   b=0.05*(a-1000);

   else if(a>2000&&a<=3000);
   b=50+(a-2000)*0.1;

   else if(a>3000&&a<=6000);
   b=150+(a-3000)*0.15;

   else if(a>6000);
   {b=300+(a-6000)*0.2;}
   r=a-b;
   printf("个人所得税=%.2lf,实际报酬=%.2lf\n",b,r);
   return 0;
}

9.计算错误

有些涉及到数学运算的算错了。PS:这边建议重新读一遍初中(手动滑稽)

目前能想到的就这么多。

你可能感兴趣的:(c语言,学习方法)