加载中
加载中
表情图片
评为精选
鼓励
加载中...
分享
加载中...
文件下载
加载中...
修改排序
加载中...
这段JAVA程序哪里错了!?!?
insaneform2010/03/15软件综合 IP:澳大利亚
        这段编码的作用是用来判断:一个分式在电脑里是否为“represented exactly ”,前面那个单词的意思是:一个分式乘以分母,如果结果是分子,那么就是;如果结果不是分子,那么此分式不是“represented exactly ”。分子和分母都是1~10内的(包括1、10)整数。
我编完后没有发现语法错误和逻辑错误,但是测试却不成功,把CPU全占满了,差点烧掉……

请诸位帮在下检查一下这段程序到底什么地方不对。
请慎重测试……


//created by INSANEFORM
public class ComputingFractions
{
    public static void main(String[] args)
    {
        int num1=1;
        int num2=10;
        
        int num11=num1;
        while (num11<=num2);
        num11++;
        //这是分子的取值轮
        int den1=1;
        int den2=10;
        
        int den11=den1;
        while (den11<=den2);
        den11++;
        //分母取值轮
    
        //

        if ((num11/den11)*den11 !=num11) // 分数乘以分母不等于分子
        System.out.println(num11 +" is not represented precisely");
    
    }
        
    
}
来自:计算机科学 / 软件综合
7
新版本公告
~~空空如也
insaneform 作者
15年7个月前 IP:未同步
200975
因为浮点运算的一些规则,分数乘以分母并不都等于分子。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
insaneform作者
15年7个月前 IP:未同步
200976
啊,在最后一句有一处小小错误:应该为:
System.out.println(num11 + "/" +den11 +" is not represented precisely");
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
insaneform作者
15年7个月前 IP:未同步
200977
求助~~~~~~~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
93°
15年7个月前 IP:未同步
200978
完全不会写程序,路过帮顶顺便接分。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
insaneform作者
15年7个月前 IP:未同步
200979
呜呜呜,测试时好久没反应,看着不对劲就检查了一下CPU,一看差点吓死,100%全负荷运转啊~~~~我可怜的CPU,不知道少了多少小时的寿命。。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
supercat
15年7个月前 IP:未同步
201081

        int num1=1;
        int num2=10;
      
        int num11=num1;
        while (num11<=num2);
        num11++;

.....这个....while后面直接跟分号....根据条件判断...这个 while乃无限循环.....
你需要把while语句这行后面的分号去掉...同样..程序下文中还有一个同样的错误.....
我想你想要的语句应该是这样:


还有...CPU长期100%是不会烧掉的....最多死机...现在的CPU过热保护机制是很完善的....
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
supercat
15年7个月前 IP:未同步
201146
稍微改了下,这样不会无限循环.....

//created by INSANEFORM


public class ComputingFractions
{
    public static void main(String[] args)
    {
        int num1=1;
        int num2=10;
        int num11=num1;
        int den1=1;
        int den2=10;
        int den11=den1;
        while (num11<=num2)
        {
            num11++;

            while (den11<=den2)
            {
                den11++;
                if (((num11/den11)*den11 !=num11)
                    System.out.println(num11 +" is not represented precisely");
            }
        }
  
    }  
}


但是有一点要LZ注意....两个整形相除的结果不是小数,而是整数....小数部分会被舍弃。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
insaneform
学者 笔友
文章
33
回复
462
学术分
1
2009/06/28注册,7年8个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的