我正在努力确保我的程序不算作偶数,并专门写道它必须符合这些条件。但它仍然是重要的!??!?
import java.util.Scanner;
public class CountDigits
{
public static void main (String []Args)
{
Scanner keyboard = new Scanner (System.in);
System.out.println("Enter a number:");
long input = (keyboard.nextLong());
String inputString = Long.toString(input);
char [] inputChar = (inputString.toCharArray());
int numOdds = 0;
int numEvens = 0;
int numZeros = 0;
int i = 0;
while (i<inputString.length())
{
if (inputChar[i]!=0&&inputChar[i]%2==0)
{
numEvens++;
}
答案 0 :(得分:1)
您使用的是char[]
,而不是int[]
。 char
0
与char
'0'
不同。如果你这样做,你的程序将会起作用:
if (inputChar[i]!='0' && inputChar[i]%2==0)
然而,如果您使用int[]
而不是混淆。
答案 1 :(得分:0)
如果不尝试运行代码,我可以看到您正在执行inputChar[i]%2==0
inputChar[i]%2
将返回inputChar[i]/2
的余数,所以当inputChar [i]的值为0时,0除以2将等于0,因此剩余的为0。
如果你想将0计为奇数,你还需要检查0.
请注意,inputChar [i]是一个char而不是int,所以你需要检查inputChar [i]!='0'