import java.util.*;
import javax.swing.*;
public class ZhangIDK
{
public static void main (String[] args)
{
average (1, 2, 3, 4, 5, 6, 7);
least (1, 2, 3, 4, 5);
Scanner sc = new Scanner (System.in);
System.out.println ("Please enter a number");
int h = sc.nextInt();
System.out.println ("Please enter another number");
int i = sc.nextInt();
power (h, i);
System.out.println ("Please enter a number");
int k = sc.nextInt();
System.out.println ("Please enter a word");
String j = sc. nextLine();
repeater (j, k);
}
public static void average (int a, int b, int c, int d, int e, int f, int g)
{
int y = a + b + c + d + e + f + g;
y/=7;
System.out.println ("The average is" +y);
}
public static void least (int q, int r, int s, int t, int u)
{
int Smallestnumber = 100;
int number = 1;
if (number < Smallestnumber)
{
Smallestnumber = number;
number++;
}
System.out.println("The smallest number is" +Smallestnumber+ ".");
}
public static void power (int h, int i)
{
int result = 1;
for (int temp = 0; temp < i; temp++)
{
result *= h;
}
System.out.println (h);
}
public static void repeater (String j, int k)
{
for (int tem = 0; tem < k; tem++)
{
System.out.println (j + " ");
}
}
}
我是编程的初学者,我的老师给我们分配了这些方法练习题。
在第一种方法中,我们假设找到7个预先声明的数字的平均值。
在第二种方法中,我们假设找到5个预先声明的数字中最小的一个。
在第三种方法中,我们假设允许用户输入两个数字,程序将第一个数字提升到第二个数字的幂。例如:用户输入2和4,程序将为SOP 2 ^ 4,即16。
在第四种方法中,我们假设允许使用输入一个单词和一个数字,程序应该将该单词作为数字SOP的次数。例如:用户输入BOB和2,程序应该是SOP BOB BOB
我的问题是最后一个方法,问题会弹出询问“请输入一个单词”,但程序不允许我输入一个单词,因此我无法检查我的代码是否有效。如何让代码让我输入一个单词?
答案 0 :(得分:0)
您正在错误地执行最少方法,至少应该将您使用的每个值与参数进行比较。您可以先将 smallestnumber 指定给您的第一个值,让我们说 q ,然后将您的最小数字与其他值进行比较。如果它们小于最小数量,则将比较值的值分配给最小数量。
至于为什么你输入一个单词不接受输入就是那个,你正在调用 sc.nextInt(),这没有错,但它会读取下一个Integer作为方法名称说,忽略其余部分。所以你的 sc.nextline()可能正在接受扫描仪缓冲区上剩下的内容,即换行符。要解决此问题,请尝试在每个 sc.nextInt()之后插入 sc.nextline(),或者对每个整数输入使用 sc.nextline()然后将它们解析为整数。