下面这段代码什么意思 int num = r.nextInt(899) + 100;
时间: 2023-04-03 08:05:12 浏览: 39
这段代码的意思是生成一个三位数的随机整数,范围在100到999之间。其中r是一个随机数生成器对象,nextInt(899)表示生成0到898之间的随机整数,再加上100就是100到999之间的随机整数。最后将生成的随机数赋值给变量num。
相关问题
Scanner sc = new Scanner(System.in); int num = sc.nextInt(); for (int i = 0; i <= num; i++) { int count = 1; int tmp = i; while (count != 0) { count++; tmp = tmp / 10; } tmp = i; int sum = 0; while (tmp != 0) { sum += Math.pow(tmp % 10,count); tmp /= 10; } if(sum == i) { System.out.println(i); } }这个代码有啥问题
这段代码还是判断每个数是否为阿姆斯特朗数的代码。但是在第一个while循环中,判断条件不正确。当tmp除以10的商为0时,应该停止循环,但是判断条件是count不等于0,这是不正确的。应该改为当tmp大于0时,继续循环,当tmp等于0时,停止循环。修改后的代码如下:
```
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
for (int i = 0; i <= num; i++) {
int count = 1;
int tmp = i;
while (tmp > 0) {
count++;
tmp = tmp / 10;
}
tmp = i;
int sum = 0;
while (tmp != 0) {
sum += Math.pow(tmp % 10,count);
tmp /= 10;
}
if(sum == i) {
System.out.println(i);
}
}
```
这样修改后,就可以正确地判断每个数是否为阿姆斯特朗数了。
public class test1 { public static void main(String[] args) { Scanner scan=new Scanner(System.in); System.out.print("请输入学生的人数:"); int num=scan.nextInt(); int score[]=new int[num]; System.out.print("请输入"+num+"个学生的成绩:"); for (int i = 0; i < num.length; i++) { score[i]=scan.nextInt(); } } }错在哪里了
在这段代码中,`num`是一个`int`类型的变量,不是一个数组,所以不能使用`num.length`的方式获取其长度。应该改为使用`score.length`获取数组的长度。
正确的代码应该是这样的:
```java
public class test1 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.print("请输入学生的人数:");
int num=scan.nextInt();
int score[]=new int[num];
System.out.print("请输入"+num+"个学生的成绩:");
for (int i = 0; i < score.length; i++) {
score[i]=scan.nextInt();
}
}
}
```
这样就能正确编译和运行了。