因为左边的求水仙花数的程序,取三位正整数的个十百位上的数字没有问题,而右边的程序取个十百位上的数字有问题,所以右边的程序出不来结果.
右边的程序取个位数没错int i=a%10但是取十位数int j=a%10/10因为任何数除以10,余数都小于10,再除以10,所以j=0正确写法是int j=a/10%10a除以10再除以10取余数.
比如a=153,如果用错误写法int j=153%10/10=3/10=0,正确写法int j=153/10%10=15%10=5
还有取百位数也是错的,int k=a/10,得到的是两位数(因为a是三位数),正确写法是int k=a/100
比如a=153,如果用错误写法int j=153/10=15,正确写法int j=153/100=1
右边改完的Java求水仙花数的程序如下(改动的地方见注释)
public class b {public static void main(String[]args) {
for (int a=100a<1000a++){
int i=a%10
int j=a/10%10//这里取十位数错误 把int j=a%10/10改成int j=a/10%10
int k=a/100 //这里取百位数错误 把int k=a/10改成int k=a/100
if(i*i*i+j*j*j+k*k*k==a) {
System.out.println("水仙花数--->"+a)
}
}
}
}
一种情况是你程序有逻辑错误,不能得到正确的结果,所以虽然能运行但也不会得到结果。一种情况是得到结果但运行时小
黑屏
停留时间非常短不能看到,建议在程序最后加上system("pause")它的作用是使结果停留在小黑屏上。
我没参加过了,我学软件的,不需要考
计算机等级考试
,我猜应该不会,但为了稳妥期间,最好还是把结果文件弄好了。
可以把你写的程序给出来,帮你看看有错误没。。。。。。。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)