日期:2014-05-20  浏览次数:20756 次

知道错在哪,不知咋改?
import   java.applet.*;
import   java.awt.*;

public   class   sushu1   extends   Applet
{
    public   void   paint(Graphics   g)
    {
        int   i,j;
        for(j=2;j <=10;j++)
        {
            for(i=2;i <=j/2;i++)
            {if(j%i==0)
                break;
            }
            if(i> j/2)
              {g.drawString(j+ ", ",10,20);}
        }
    }                       //求100内的素数
}
最后一句重复在一点上写数字,导致无法显示,帮帮忙

------解决方案--------------------
前面设个int count = 0;
后面g.drawString(j+ ", ", 30 * (count%5), 20 * (1 + count/5));
------解决方案--------------------
写在一点上不是一团黑?加个刷新或者改变写的坐标
------解决方案--------------------
{g.drawString(j+ ", ",10,20);}

10,20 是你写的位置,加个变量控制下就行了
------解决方案--------------------
楼上说的对,改变坐标
------解决方案--------------------
for(j=2;j <=10;j++)
{
for(i=2;i <=j/2;i++)
{if(j%i==0)
break;
}
上面有问题 一开始j是2 j/2=1 i是2 2永远大于1 故此for循环不执行 程序有错误
------解决方案--------------------
反对treewind2008() 的看法 一开始j是2 j/2=1 i是2 2大于1。内循环不执行。直接到
if(i> j/2)
{g.drawString(j+ ", ",10,20);}
条过内循环后i=2 j=2 j/i=1 会输出该数
这个条件不成立,又进行下一次循环。下一次循环的值j=3跟j=2一样。内循环不执行

同意
YCRingfinger() 以及zephyr_cc() 的看法
------解决方案--------------------
import java.applet.*;
import java.awt.*;

public class sushu1 extends Applet
{
public void paint(Graphics g)
{
int i,j,k=0;
for(j=2;j <=10;j++,k++)
{
for(i=2;i <=j/2;i++)
{if(j%i==0)
break;
}
if(i> j/2)
{g.drawString(j+ ", ",10+k,20);}
}
} //求100内的素数
}