将输入数字提高到幂;重复的话;输入单词

Posted

技术标签:

【中文标题】将输入数字提高到幂;重复的话;输入单词【英文标题】:Raising input numbers to a power; repeating words; entering words 【发布时间】:2014-03-05 01:49:58 【问题描述】:
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 鲍勃 鲍勃

我的问题是最后一种方法,问题会弹出询问“请输入一个单词”,但程序不允许我输入一个单词,因此我无法检查我的代码是否有效。如何获取让我输入单词的代码?

【问题讨论】:

对于您的电源方法,您是否打印了错误的信息?我认为你应该打印结果而不是 h 谢谢!!!!我真是个白痴!我应该打印出结果!非常感谢! 【参考方案1】:

您的 least 方法是错误的,least 方法至少应该与您作为参数输入的每个值进行比较。您可以首先将 smallestnumber 分配给您的第一个值,比如说 q,然后将您的 minimumnumber 与其他值进行比较。如果它们小于 smallestnumber,则将比较值的值分配给 smallestnumber

至于为什么你的 Please enter a word 不接受输入的原因是,你在调用 sc.nextInt(),这并没有错,但是它会读取下一个 Integer 作为方法名说,并忽略该行的其余部分。因此,您的 sc.nextline() 可能正在接受扫描仪缓冲区中剩余的内容,即换行符。要解决此问题,请尝试在每个 sc.nextInt() 之后插入 sc.nextline() 或对每个整数输入使用 sc.nextline()然后将它们解析为整数。

【讨论】:

以上是关于将输入数字提高到幂;重复的话;输入单词的主要内容,如果未能解决你的问题,请参考以下文章

如何将数字提高到幂?

在 SAS 中将数字数组提高到幂

编写代码将给定的数字转换为单词(例如 1234 作为输入应该输出 1234)

如何将单词映射到数字以输入到 Tensorflow 神经网络

数字仅输入数字[重复]

使用类 C# 将数字转换为单词