Java 为了满足程序的所有要求,我在代码中缺少了什么?
我必须设计和实现一个程序,计算用户输入的整数值。生成一个表,列出从输入中标识为整数的值。提供这些数字的总和和平均值。这是我到目前为止得到的Java 为了满足程序的所有要求,我在代码中缺少了什么?,java,Java,我必须设计和实现一个程序,计算用户输入的整数值。生成一个表,列出从输入中标识为整数的值。提供这些数字的总和和平均值。这是我到目前为止得到的 public class Table { public static void main(String [] strAng) { int sum = 0; double average; int min = 1; int max = 10; for(int number = min; number <=
public class Table {
public static void main(String [] strAng) {
int sum = 0;
double average;
int min = 1;
int max = 10;
for(int number = min;
number <= max; ++number) {
sum += number;
}
System.out.print("Sum:" +sum);
System.out.print("Average:" +average);
公共类表{
公共静态void干管(字符串[]绞线){
整数和=0;
双倍平均;
int min=1;
int max=10;
对于(整数=min;
数字您并没有从用户那个里得到输入,而且您也并没有做任何平均值的事情
尝试此代码,如果您有其他要求,请更新问题
int sum = 0;
double average;
Scanner userInputScanner = new Scanner(System.in);
System.out.println("Please enter the integers with space between each two integer: ");
String inputNumberFilePath = userInputScanner.nextLine();
String[] numStrArray = inputNumberFilePath.split(" ");
for (String string : numStrArray) {
sum += Integer.parseInt(string);
}
average = (double) sum / (double) numStrArray.length;
System.out.println("Sum: " + sum);
System.out.println("Average: " + average);
输出样本:
Please enter the integers with space between each two integer:
10 20 30 40 50
Sum: 150
Average: 30.0
我不确定这是否正是你想要的,但它可能是。使用此代码,你可以输入一个包含整数的字符串。整数被提取、计数,并对基本上是条形图的对象执行求和和和平均运算。希望这对你有所帮助
import java.util.*;
public class Table {
此部分用于读取包含的任何用户输入字符串
public static String getInput(){
String outPut = "";
System.out.println("Type something to parse: ");
Scanner sc = new Scanner(System.in);
if(sc.hasNextLine()) {
outPut = sc.nextLine();
}
return outPut;
}
在这里,我们构建“条形图”:
您没有收到任何用户输入?…欢迎使用Stack Overflow!请通读,尤其是,很明显,缺少的是任何读取用户输入的尝试。因此,请进行相关主题的研究,并尝试这样做。如果在进行更多研究和搜索后,您陷入困境,无法摆脱困境,请发布您的尝试并明确指出你的困境。人们会很乐意提供帮助。祝你好运!如果你的代码没有编译,那么它满足要求的可能性很小。这是不可能的,因为你还没有初始化average
(加上缺少右括号)。您必须将numStrArray.length
转换为double
,否则java会将结果取整:average=sum/(double)numStrArray.length;
是的,您是对的,sum
和length
都必须转换为double
,我已经更改了,谢谢。
public static Map<Long,Integer> makeTable(String input){
Map<Long,Integer> table = new HashMap<>();
long in = Long.parseLong(input);
long lastDig = 0;
int count = 1;
while(in > 0){
lastDig = in % 10;
in /= 10;
if(!table.containsKey(lastDig)) {
table.put(lastDig, count);
} else {
table.replace(lastDig,count,count+1);
}
}
return table;
}
public static int sum(Map<Long,Integer> table){
int sum = 0;
for (Long key: table.keySet()
) {
sum += (key*table.get(key));
}
return sum;
}
public static int average(Map<Long,Integer> table){
int sum = 0;
int divisor = 0;
for (Long key: table.keySet()
) {
sum += (key*table.get(key));
divisor += table.get(key);
}
return sum/divisor;
}
public static void main(String[] args){
int sum = 0;
double average = 0;
String input = "";
input = getInput();
System.out.println("Unsanitized In: " + input);
input = input.replaceAll("[^\\d.]","");
Long.parseLong(input);
System.out.println("Sanitized In: " + input);
Map<Long,Integer> myMap = makeTable(input);
System.out.println(myMap);
System.out.println("Sum:" +sum(myMap));
System.out.print("Average:" + average(myMap));
}
Unsanitized In: asdf45313ha
Sanitized In: 45313
{1=1, 3=2, 4=1, 5=1}
Sum:16
Average:3