黑马程序员技术交流社区
标题:
发帖,求助
[打印本页]
作者:
廉伟
时间:
2012-9-4 18:35
标题:
发帖,求助
public class Text2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
System.out.print("101到200的素数是: ");
for(int i=101;i<=200;i++)
{
int flag=0;
for(int j=2;j<=Math.sqrt(i);j++)
{
float k=(float)i;
if(k%j=0)
{
flag=1;
break;
}
}
if(flag=0)
{
System.out.print(i+" ");
sum++;
}
}
System.out.println("");
System.out.print("素数个数为: ");
System.out.print(sum);
}
}
复制代码
判断101-200之间有多少个素数,并输出所有素数。
这是题目和代码就是不知道哪里出错了,谁可以解除啊。
作者:
杨习平
时间:
2012-9-4 18:47
01.public class Text2 {
02. public static void main(String[] args) {
03. // TODO Auto-generated method stub
04. int sum=0;
05. System.out.print("101到200的素数是: ");
06. for(int i=101;i<=200;i++)
07. {
08. int flag=0;
09. for(int j=2;j<=Math.sqrt(i);j++)
10. {
11. float k=(float)i;
12.
if(k%j==0)
//是判断语句
13. {
14. flag=1;
15. break;
16. }
17.
18. }
19.
if(flag==0)
//是判断语句
20. {
21. System.out.print(i+" ");
22. sum++;
23. }
24. }
25. System.out.println("");
26. System.out.print("素数个数为: ");
27. System.out.print(sum);
28. }
29.}
作者:
王舜民
时间:
2012-9-4 18:55
public class Text2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
System.out.print("101到200的素数是: ");
for(int i=101;i<=200;i++)
{
int flag=0;
for(int j=2;j<=Math.sqrt(i);j++)
{
float k=(float)i;
if(k%j==0)
//这才是判断相等与否。你写了(k%j =0)是赋值操作 把0赋给(k%j)
于是报了意外地类型错误
{
flag=1;
break;
}
}
if
(flag==0
) //这边同理
{
System.out.print(i+" ");
sum++;
}
}
System.out.println("");
System.out.print("素数个数为: ");
System.out.print(sum);
}
}
作者:
王宝龙
时间:
2012-9-4 21:22
本帖最后由 王宝龙 于 2012-9-4 21:37 编辑
首先一个错误就是第12行 k与j不是同一个类型的可以将k用int型的, 没必要把k初始为float的这样反倒麻烦了还要将i强制转换,然后一个错误就是if()括号里是判断所以要用“==”,应为if(k%j==0);Java里判断的一般用布尔型变量,最好将flag变量定义为布尔型。
不多说请看改正后的代码吧!
public class InputDemo{
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
System.out.print("101到200的素数是: ");
for(int i=101;i<=200;i++)
{
boolean flag=false;//将flag改为布尔型并赋值为false
for(int j=2;j<=Math.sqrt(i);j++)
{
int k=i;//将k定义为int类型
if(k%j==0)//这里应该为==
{
flag=false;//赋值应为true不是1
break;
}
}
if(!flag)//判断可以改成这样
{
System.out.print(i+" ");
sum++;
}
}
System.out.println("");
System.out.print("素数个数为: ");
System.out.print(sum);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2