C语言题出现问题了 ,请大侠来帮忙看看!

题目:809*??=800*??+9*??+1其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。我编写的程... 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
我编写的程序:#include "stdafx.h"
#include <stdio.h>

int main(int argc, char* argv[])
{ int x;
for(x=10;x<100;x++)
{
if(8*x>=10&&8*x<100)
{
if(9*x>=100&&9*x<1000)
{
if(809*x==800*x+9*x+1)
{
printf("x=%d,%ld",x,809*x);
break;

}
}
}
}

return 0;
}
程序没有错误但是没有结果。
不过我把程序改成#include "stdafx.h"
#include <stdio.h>

int main(int argc, char* argv[])
{ int x;
for(x=10;x<100;x++)
{
if(8*x>=10&&8*x<100)
{
if(9*x>=100&&9*x<1000)
{
if(809*x==800*x+9*x+1)
{
break;

}
}
}
}

printf("x=%d,%ld",x,809*x);
return 0;
}
这样就出结果了。我感觉这两种写法应该一样啊?到底是什么原因呢!
这个问题的源代码是:output(long b,long i)
{ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i);
}
main()
{long int a,b,i;
a=809;
for(i=10;i<100;i++)
{b=i*a+1;
if(b>=1000&&b<=10000&&8*i<100&&9*i>=100)
output(b,i); }
}
我怎么感觉不对呢!请大家再帮我看看他这个程序IF语句后边对不对,感觉不符合题意呢!谢谢大家了!
刚才我发现我的程序接果也不对啊!我没发现有什么问题啊 到底是怎么回事呢?
展开
 我来答
陈云亮陈云财
2012-04-30 · 超过15用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:49.5万
展开全部
运行第一个时,没打印,说明没找到X,运行第二个时,X=100,说明是正常循环完了,也没找到X,这时我发现题目809*x=800*x+9*X+1,这个等式根本就不成立啊,孩子,谁出的题目啊,所以没找到那个X,就是你的结果,有时候结果就是没找到嘛,程序一点没错的哦,加油
追问
是C语言经典程序一百例里边的!那里边的源代码我怎么没看懂呢 !而且源代码运行就有结果啊
追答
没事,程序过程懂了,就ok了,换下一个,呵呵,我也是菜鸟,没大研究这些
博秦政远
2012-04-30 · TA获得超过713个赞
知道小有建树答主
回答量:219
采纳率:100%
帮助的人:171万
展开全部
二楼正解。亲,相信自己……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tsingz2012
2012-04-30
知道答主
回答量:9
采纳率:0%
帮助的人:6.6万
展开全部
这句if(809*x==800*x+9*x+1)改为if(809*x==(800*x+9*x+1))试试,结果x=12就对。
追问
你这个我试了  输出语句放在哪也X也不得12啊!麻烦你再试下!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱我所爱_love
2012-04-30 · TA获得超过301个赞
知道小有建树答主
回答量:260
采纳率:50%
帮助的人:76.5万
展开全部
穷举法啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式