| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1020 人关注过本帖
标题:【求助】关于for循环穷举父子俩年龄问题
只看楼主 加入收藏
mandown1991
Rank: 4
等 级:业余侠客
帖 子:262
专家分:252
注 册:2011-3-2
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:11 
【求助】关于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的值,结果都不同,这是怎么回事?请教各位前辈!谢谢!
收到的鲜花
  • smallkid1902011-04-23 22:05 送鲜花  1朵  
搜索更多相关主题的帖子: return 
2011-03-29 08:43
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:3 
你代码1的逻辑相当于
父亲30岁不动,儿子年龄从6岁涨到M岁,找答案;
父亲现在31岁了,年龄不动,儿子从6岁涨到M岁,接着找答案;
……
Oops,现在父亲终于也到M岁了,儿子依旧从6岁涨到M岁,好吧,让我们看看这次还能不能再找出一次答案。

[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2011-03-29 08:58
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:3 
一个单循环就解决的事干嘛用2个循环

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-29 09:12
我是传奇
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:109
注 册:2011-3-21
收藏
得分:3 
学习,学习
2011-03-29 11:41
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
简单的方法,不用循环。
a=父亲年纪,b=孩子年纪,c=年数
c=a-2*b 即可

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-29 12:26
mandown1991
Rank: 4
等 级:业余侠客
帖 子:262
专家分:252
注 册:2011-3-2
收藏
得分:0 
回复 2楼 succubus
请教一下,嵌套循环是从内循环开始还是从外循环开始?
2011-03-29 13:10
mandown1991
Rank: 4
等 级:业余侠客
帖 子:262
专家分:252
注 册:2011-3-2
收藏
得分:0 
回复 3楼 ansic
谢谢你的回复,我只是想研究一下能不能用两个循环实现而已!
2011-03-29 13:11
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
收藏
得分:3 
#include "stdio.h"
void main()
{
    int Fher=30,Son=6,Years=1;
    while(Fher++,Son++,Years++)
    {
        if(Fher%2==0 && Fher/2==Son)
        {
            printf("The Fher:%d\nThe Son:%d\n",Fher,Son);
            printf("The Years : %d \n",--Years);
            break;
        }
    }
}
这样就行了。
2011-03-29 13:16
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
以下是引用mandown1991在2011-3-29 13:10:48的发言:

请教一下,嵌套循环是从内循环开始还是从外循环开始?

从里到外

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-29 15:58
mandown1991
Rank: 4
等 级:业余侠客
帖 子:262
专家分:252
注 册:2011-3-2
收藏
得分:0 
回复 9楼 ansic
嗯,谢谢!
2011-03-29 23:11
快速回复:【求助】关于for循环穷举父子俩年龄问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035934 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved