| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 716 人关注过本帖
标题:这个到底哪错了
只看楼主 加入收藏
Sandy143
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-3-23
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:8 
这个到底哪错了
#include<stdio.h>
int main(){
    int m,n;
    for(m=1;m<=40;m++){
        for(n=1;(n>=m)&&(n<=40);n++){
            if((23*m+n*19)==823)
            printf("%d\n",m);
            else continue;
        }
    }
}
2015-04-03 16:42
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
程序代码:
#include <stdio.h>

int main(void) {
    int m, n;

    for(m = 0; m <= 823 / 23; m++) {
        for(n = 0; n <= (823 - m) / 19; n++) {
            if((23 * m + 19 * n) == 823) {
                printf("m = %d n = %d\n", m, n);
                break;
            }
        }
    }

    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-04-03 17:40
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:0 
回复 2楼 longwu9t
你真是替人写作业的一把好手。
本不应该做个看客。但是实在看不下去。你觉得你这样让他没有一点的思考余地,直接给答案。给他的帮助很大么?

如果戳到你了。海涵。请放过。屌丝一枚。你大肚能容。

授人以鱼,不如授人以渔
2015-04-03 17:45
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:4 
你这样是不能遍历到所有的(n,m)组成的点。

举个简单的例子:外层循环m 增加到2的时候,进入内层,n是1, 然后判断条件:n>=m 不成立 ,直接跳出 内层循环,接着m就变成3了。

也就是 (m,n) 中(2,2)(2,3)(2,4).....都是没有执行(23*m+n*19)==823这个条件的

所以同理  ,唯一的正确结果也没有进入执行(23*m+n*19)==823 这个判断  

改进:

程序代码:
#include<stdio.h>
int main(void)
{
    int m,n;
    for(m=1;m<=40;m++)                          
    {                                           
        for(n=1;n<=40;n++)            
            if( n>=m && (23*m+n*19)==823)         
            printf("m=%d n=%d\n",m,n);
            
        }
    }
    return 0;
}

你醒了?快起来敲代码!!
2015-04-03 18:03
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:3 
正确答案:m=11,n=30。

当m=11,m<=40成立,于是进入内层循环

内层:n=1 n>=m 不成立 退出内层循环 (n来不及增加到30)

m增加1变成12,......与答案错过。

你醒了?快起来敲代码!!
2015-04-03 18:09
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
回复 3楼 执笔画江山
快半年了
我学C只是兴趣
与生计无关

回帖给出代码虽然希望能有人采纳并给出反馈
但若非我所望
也是无所谓

我只当把它当做一个学习锻炼的过程
不虑其它!

Only the Code Tells the Truth             K.I.S.S
2015-04-03 18:44
pq0123
Rank: 1
等 级:新手上路
帖 子:14
专家分:9
注 册:2015-3-14
收藏
得分:3 
就是第二个for语句那里,当m=2时,第二个for循环进不去,应为此时n=1;n>=m不可能满足,你可以调试一下,这样更加容易发现问题
2015-04-03 21:23
Sandy143
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-3-23
收藏
得分:0 
那麻烦您告诉我,我的那个程序哪里有问题。
2015-04-03 21:58
Sandy143
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-3-23
收藏
得分:0 
哦,明白了谢谢
2015-04-03 21:59
快速回复:这个到底哪错了
数据加载中...
 
   



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

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