java 老师说我代码有问题,我找不出来。
题目要求 是输出区间500——1000之内的素数。我写的代码如下:
public class data {
/**
* @Param args
*/
public static void main(String[] args) {
int n,i;
boolean prime=true;
for(i=500;i<=1000;i++)
{
for(n=2;n<i;n++)
{
if(i%n==0)
{
prime=false;
break;}
else prime=true;
}
if(prime)System.out.print(i+"\t");
}
// TODO Auto-generated method stub
}
}
之前那个老师故意整我,我没理他,结果这次这段代码他看都没看,直接问我是不是自己写的,说定了这代码肯定有问题 还问我是不是考上来的。
各位老哥帮忙下看有没有问题,我实在找不出来。
代码不太规范。 本帖最后由 暴躁的鹅卵石 于 2019-9-27 11:33 编辑
首先是 代码不规范再就是,是求500-1000以内的,不是500-1000
public class data {
public void main(String[] args) {
int n, i;
boolean prime = true;
for (i = 501; i < 1000; i++) {
for (n = 2; n < i; n++) {
if (i % n == 0) {
prime = false;
break;
} else {
prime = true;
}
}
if (prime) {
System.out.print(i + "\t");
}
}
}
} 暴躁的鹅卵石 发表于 2019-9-27 11:30
首先是 代码不规范再就是,是求500-1000以内的,不是500-1000
public class data {
你的少了static 楼主 ,你的除了代码不规范,其他好像没问题~~~~~~~~~~ 就冲你后半部分的格式就不会想往下看了,虽然仔细看没错,但太不规范了 如图,。 萧筱小 发表于 2019-9-28 00:04
如图,。
只能说,,算法没啥毛病,你多看看别人是怎么写的。你就知道你的问题了。 执行结果没问题,能求出500-1000的素数。
我看出的不规范的地方在于:
[*]类名首字母未大写;
[*]外部并未使用到两个for循环的变量,n 和 i 定义在for循环中即可;
[*]运算符之间要空格;
[*]if语句只有一行代码的时候最好还是不要简写;
{:1_896:}就你这代码写的我是老师我也不愿意看
页:
[1]
2