我正在尝试在CS课程的介绍中完成我的实验室,并且无法从txt文件中读取信息并使用它。
到目前为止,我的代码如下:
import java.io.*;
import java.util.*;
public class loops {
public static void main (String [] args) throws FileNotFoundException{
File myFile = new File("Snowboard_Scores.txt");
Scanner input = new Scanner(myFile);
String name;
String country;
int snow1;
int snow2;
int snow3;
double score;
int max = 0;
while (input.hasNext() ){
System.out.println(input.nextLine());
max++;
}
System.out.println(max);
for (int count = 0; count < max; count ++){
}
}
}
实验室很简单,我正在比较4个不同滑雪板爱好者的三个分数。每个滑雪者都有一个名字,一个国家和3个评委评分。我需要对得分进行平均,然后将其与所有滑雪板爱好者进行比较,看看谁拥有最高分,然后打印出滑雪板爱好者的名字和国家。
我正在努力以一种有用的方式收集和存储所有数据。我们实验室目前无法使用阵列,任何人对如何解决这个问题都有任何想法?
Snowboard_Scores.txt:
Shaun White
United States
9.7
9.8
9.6
Bob Saget
Yugolsavia
1.4
2.1
1.9
Morgan Freeman
Antartica
10.0
9.9
9.8
Diana Natalicio
Brazil
8.7
8.7
9.2
答案 0 :(得分:0)
太简单了;
在读取数据时处理数据;
阅读每个滑雪板并与最佳的前值进行比较;
然后选择最佳值作为最佳值;见下面的代码
import java.io.*;
import java.util.*;
public class loops {
public static void main (String [] args) throws FileNotFoundException{
File myFile = new File("Snowboard_Scores.txt");
Scanner input = new Scanner(myFile);
String name = "";
String country = "";
double score = 0.0;
while (input.hasNext() ){
String tmp_name = input.nextLine();
String tmp_country = input.nextLine();
double tmp = Double.parseDouble(input.nextLine())/3;
tmp += Double.parseDouble(input.nextLine())/3;
tmp += Double.parseDouble(input.nextLine())/3;
if(tmp > score){
name = tmp_name;
country = tmp_county;
score = tmp;
}
}
System.out.println(name);
System.out.println(country);
}
你是对的。一行错过了
答案 1 :(得分:0)
稍作修改。
while (input.hasNext()){
String tmp_name = input.nextLine();
String tmp_country = input.nextLine();
double tmp_avg = Double.parseDouble(input.nextLine())/3;
tmp_avg += Double.parseDouble(input.nextLine())/3;
tmp_avg += Double.parseDouble(input.nextLine())/3;
if(tmp_avg > score){
score = tmp_avg;
name = tmp_name;
country = tmp_country;
}
}