知道错在哪,不知咋改?
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内的素数
}