程序改错题。爱因斯坦曾经出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;若每步跨7阶,最后正好一阶也不剩。参考6.13程序,编写计算这条阶梯共有多少阶的程序如下所示,其中存在一些语法和逻辑错误,请找出并改正之。
#include<stdio.h>
main()
{
int x=1,find=0;
while(!find);
{
if(x%2=1&&x%3=2&&x%5=4&&x%6=5&&x%7=0)
{
printf("x=%d\n",x);
find=1;
x++;
}
}
}
改正:
#include<stdio.h>
main()
{
int x=1,find=0;
while(!find)
{
x++;
if(x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0)
{
find=1;
}
}
printf("x=%d\n",x);
}
程序的运行结果为:
知识点:
1.while()后面不能加“;”否则可能造成死循环。
2.等于符号不能写成赋值符号。
心得体会:不要在while()和for()后面加“;”.