你写的程序有问题。
首先判断“等于”应该用“==”,其次while的使用也不对,它并不在循环之内,所以最后的s的值只有唯一的一个,循环没有任何意义。我修改了一下程序(c的值可以从1开始循环,>#include
#include
void main()
{
int a,b,c,d;
int s;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=1;c<=9;c++)
for(d=0;d<=9;d++)
{
s = 899*a+90*b-91*c-9*d;
if(s==0)
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
}
getchar();
}
不幸的是,我测试了一下,这样改过之后还是没有结果,但程序是没问题的。不知道你的题目有没有问题。希望有帮助
while(s=0)
{ printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);
}
表达式s=0的值为1,即while(0),循环条件为假,是不会打印的
有两个错误,开头的
#include
应该分成2行写,即
#include
#include
然后就是循环部分,应该改成while(s==0),应该就OK了
在while循环那里,直接把0赋值给s,条件总是为假,while循环不会执行的。这个是=和==的要注意的地方。