2014-11-04 59 views
-5

我寫了這個程序後,問了很多問題,並在我的方式來測試程序,我把2個奇怪的名字,我得到不同的結果......如果你給這些名稱「薩爾曼」,那麼「sania」它給出結果零!我的意思是怎麼可能? 2整數並將它們相加併除以得到零如果x是正數,x%101的輸出如何爲零?

所以我認爲我的代碼是絕對錯誤的,但在哪裏?

package loveindex; 
import java.util.Scanner; 

public class LoveIndex { 
     public static void main(String[] args) { 


      Scanner scan = new Scanner(System.in); 

      System.out.println("Please enter your name :"); 
      String name1 = scan.nextLine(); 

      System.out.println("Please enter your Lover's name "); 
      String name2 = scan.nextLine(); 

      name1 = name1.toUpperCase(); 

      char[] ascii1 = name1.toCharArray(); 
      int sum01 = 0; 
      for (char ch : ascii1) { 
       sum01 += ch; 
      } 



      name2 = name2.toUpperCase(); 
      char[] ascii2 = name2.toCharArray(); 
      int sum = 0; 
      for (char ch : ascii2) { 
       sum += ch; 
      } 

      int sumTot= (sum+sum01)%101; 
      System.out.println("Percentage of Love " + sumTot); 

      scan.close(); 

} 
} 
+1

這個問題似乎是無關緊要的,因爲它不清楚OP想要做什麼。 – FunctionR 2014-11-04 23:48:43

+0

爲什麼?人們甚至回答,我得到了我的答案!大聲笑 – 2014-11-05 09:44:59

回答

1

沒有明顯的錯誤,你正在尋找。
您正在使用返回分部餘數的模運算符。使用「薩爾曼」和「人氣選手」

在你的情況你的計算的總和是808
808 101除以8

正如你可以看到有沒有該操作,使得剩餘部分的模運算符返回0

例如:

809由101分爲8與REMA inder of 1.
模運算符將返回1。

+0

感謝您的全面解答... – 2014-11-05 00:36:01

1

沒有除法運算在你的代碼發生,%是這是給你用101除以總數的剩餘部分模運算如果總和是101的倍數,那麼你將獲得返回0作爲結果。

2

「SALMANSANIA」的ASCII值的總和是808,和808%101 = 0

相關問題