2014-03-05 42 views
0
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

爲您的電源方法,你打印錯誤的信息?我想你應該打印結果而不是h –

+0

謝謝!我真是個白癡!我應該打印出結果!非常感謝! – Sarah

回答

0

你正在做你的至少方法錯誤,最少的方法應該至少與你作爲參數採取的每個值進行比較。您可以先將最小號碼分配給您的第一個值,比如說q並將您的最小號碼與其他值進行比較。如果它們小於最小號碼,則將比較值的值分配給最小號碼

至於爲什麼你請輸入一個單詞不接受輸入的是,你在呼喚sc.nextInt(),這是沒有錯的,但它會讀取下一個整數作爲方法名說,和忽略該行的其餘部分。因此,您的sc.nextline()可能正在接受掃描儀緩衝區中剩下的內容,這是換行符。若要解決此問題,請嘗試每隔sc.nextInt()後插入sc.nextline(),或者對每個整數輸入使用sc.nextline(),然後將它們解析爲整數。