C语言问题求解答,麻烦把解释过程说一下

809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位位数,及809*??后的结果。
1.程序分析:
2.程序源代码:
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); }
}

行1:定义output函数,参数为长整型b及长整型i。

行2:屏幕输出换行符,形式为%ld% ld=809*%ld+%ld的结果,参数b,参数i,等
行3:output函数结束
行4:入口主函数
行5:定义局部变量长整型,a,b,i
行6:参数a赋初值809
行7:定义for循环,从i=10开始循环90次,每次循环i+1。
行8:计算b=a*循环变量i+1
行9:如果b大于等于1000并且b小于等于10000并且8乘以循环变量i小于100并且9乘以循环变量i大于100,则调用函数output(b,i)。
行10:主函数结束
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-08
1、题目求的是??代表的数是什么
2、现在只能肯定??是两位数,即:10~99

程序中采用的方法是,从10到99,逐一试验的方法,看哪个数满足题目的条件,满足的话,就输出??了,也就是“i”,809*??也就是b(809*??+1)了