标题:输出问题
只看楼主
peswe
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2006-11-22
 问题点数:0 回复次数:6 
输出问题
是求一个在1000以内满足勾股定理的小程序;可是怎么输出的结果不全啊?还请指点!~
#include <stdio.h>
#include <math.h>
int main()
{
    int a,b;
    float c,d;
    for(a=1;a<=1000;a++)
        for(b=a+1;b<=1000;b++)
        {
            c=sqrt(a*a+b*b);
            d=int(c);
            if(d==c&&c>1&&c<=1000)
            {
                printf("%d,%d,%.0f\n",a,b,c);
            }
        }
    return 0;
}
搜索更多相关主题的帖子: 勾股定理 输出 int include float 
2008-04-09 14:30
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
得分:0 
你怎么知道不全阿?
还有,d=int(c); 应该是 d=(int)c;
别的看不出来。

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-04-09 14:44
duxinjun123
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-7-6
得分:0 
没看出什么问题,输出是什么样的,怎么会不全呢
2008-04-09 14:51
心若止水
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-4-9
得分:0 
把d=int(c);这行去掉,再把12行改为if(c > 1 && c <= 1000);
运行后可得正确结果。但是满足条件的数很多,建议你把1000改小一点看看运行结果,
会很直观。
2008-04-09 15:50
心若止水
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-4-9
得分:0 
把d=int(c);这行去掉,再把12行改为if(c > 1 && c <= 1000);
运行后可得正确结果。但是满足条件的数很多,建议你把1000改小一点看看运行结果,
会很直观。
2008-04-09 15:52
AN玉蝴蝶
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2008-4-9
得分:0 
for(a=1;a<=1000;a++)
这句有问题呀!!!
#include <stdio.h>
#include <math.h>
int main()
{
    int a,b;
    float c,d;
    for(a=1;a<=100;a++)
        for(b=a+1;b<=1000;b++)
        {
            c=sqrt(a*a+b*b);
            d=(int)c;
            if(d==c&&c<=1000)
            {
                printf("%d,%d,%5.0f\n",a,b,c);
            }
        }
    return 0;
}

这样一定行
具体为什么我也说不清楚!!!
2008-04-09 16:21
peswe
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2006-11-22
得分:0 
谢谢各位的指点!~^_^
int(c)要改是正确的,可是AN玉蝴蝶说的方法虽然可以输出前面的部分满足结果,并不满足条件,题中说的是1000以内的啊!~

C斗士~~~fighting!!!!
2008-04-10 11:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-207987-1-1.html




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

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