【求助】关于for循环穷举父子俩年龄问题
原题目:父子俩的年龄:父亲今年30岁,儿子今年6岁,问多少年后父亲的年龄是儿子年龄的2倍。
代码1:
#include <stdio.h>
#define M 100
int main(void)
{
int a,b;
for(a=30;a<=M;a++)
for(b=6;b<=M;b++)
if(a==2*b)
printf("%d年后父亲的年龄是儿子的2倍!\n",a-30);
return 0;
}
代码2:
#include <stdio.h>
#define M 100
int main(void)
{
int a,b;
for(a=30,b=6;a<=M,b<=M;a++,b++)
if(a==2*b)
printf("%d年后父亲的年龄是儿子的2倍!\n",a-30);
return 0;
}
正确答案是18年,无论M的定义是多少,代码2都可以算出正确答案,但是代码1每次改变M的值,结果都不同,这是怎么回事?请教各位前辈!谢谢!