我在问了很多问题之后编写了这个程序,并且以我的方式来测试程序,我输了两个奇怪的名字,我得到了不同的结果......如果你给这些名字“salman”然后“sania”它给出了结果零!!我的意思是怎么可能? 2整数并将它们相加并除以它们得到零????
所以我认为我的代码肯定是错的,但在哪里?
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();
}
}
答案 0 :(得分:2)
“SALMANSANIA”的ascii值之和为808,而808%101 = 0。
答案 1 :(得分:1)
你的代码中没有发生除法运算,%
是模运算符,它给你剩余的和除以101.如果总和是101的倍数那么你将得到0返回结果。
答案 2 :(得分:1)
您搜索时没有明显错误。
您正在使用模运算符返回除法的余数。
在您的情况下,使用“salman”和“sania”计算的总和为808 808除以101是8。
正如您所看到的,此操作没有剩余部分,因此模运算符返回0。
例如:
809除以101是8,其余为1 模运算符将返回1。