我试图解决的问题如下:“从用户读入数字,直到用户输入-1,并计算用户偶数的频率”。
我完成了第一部分,似乎运行正常。但我无法完成第二部分,我从用户那里计算偶数的频率。
我复制了迄今为止所做的工作,但我正在寻求帮助来完成它。我很感激任何人的帮助。
import javax.swing.JOptionPane;
public class Ex2Ass2ParC {
public static void main(String[] args){
String dataString = JOptionPane.showInputDialog("Enter an integer value:/n(the program exits if the input is -1)");
int data = Integer.parseInt(dataString);
int count = 0;
while(data!=-1){
count++;
dataString = javax.swing.JOptionPane.showInputDialog("Enter an integer value:/n(the program exits if the input is -1)");
data=Integer.parseInt(dataString);
}
JOptionPane.showMessageDialog(null, "The frequency of numbers is"+count);
}
}
}
答案 0 :(得分:0)
为了计算某种数字的频率,您需要计算输入的这些数字的数量,以及您已经拥有的数字总数。
添加一个单独的计数器,并在每次tools
时递增,这表示解析的数字是偶数:
data % 2 == 0
在循环结束时,将偶数除以总计数。确保在执行除法之前将第一个计数转换为int count = 0;
int even = 0;
while(data!=-1){
count++;
dataString = javax.swing.JOptionPane.showInputDialog("Enter an integer value:/n(the program exits if the input is -1)");
data=Integer.parseInt(dataString);
if (data % 2 == 0) {
even++;
}
}
,否则您将获得整数除法,从而得到零或一。
答案 1 :(得分:0)
添加if语句以检查数字是否均匀,而不是每次只通过执行以下操作添加计数:
if (data % 2 == 0) {
count++;
}
所以用上面的语句替换count++
。
编辑
如果按频率表示百分比,则需要创建第二个局部变量来跟踪给定的总数量
double totalNumbers = 0.0;
while(data!=-1){
totalNumbers++;
if (data % 2 == 0) {
count++;
}
dataString = javax.swing.JOptionPane.showInputDialog("Enter an integer value:/n(the program exits if the input is -1)");
data=Integer.parseInt(dataString);
}
然后将对话框更改为JOptionPane.showMessageDialog(null, "The frequency is: " + (count/totalNumbers));