#include
#include
int main()
{
int a;
scanf("%s",&a);
printf("%lf\n",a);
return 0;
}
定义的为double,输入输出应该用%d。
#include
#include
int main()
{
int a
scanf("%d",&a);
printf("%d\n",a)
return 0;
}
printf后面漏掉分号,int后面漏掉分号。
#include
#include
int main()
{
int a;
sCanf("%d",&a);
printf("%d\n",a);
return 0;
}
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;
}
聪明的你能不能发现哪个字符用差了?
scanf语句漏掉了&
#include
#include
int main()
{
int a;
scanf("%d",a);
printf("%d\n",a);
return 0;
}
漏掉了&,程序仍可以运行,不会报错,但是运行结果一定出错,要特别注意。
①符号错误,分号用成逗号
#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;
}
#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条件里面用的中文的分号。
①条件错误
#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;
}
有些涉及到数学运算的算错了。PS:这边建议重新读一遍初中(手动滑稽)
目前能想到的就这么多。