2014-11-04 62 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

相关问题