package Question;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class QuestionTest {
public static void main(String[] args) throws IOException{
Scanner input = new Scanner(System.in);
int[] number = new int[5];
String[] name = new String[5];
int[][] grade = new int[5][3];
double[] sum = new double[5];
for (int i = 0; i < 5; i++) {
number[i] = input.nextInt();
name[i] = input.next();
for (int j = 0; j < 3; j++) {
grade[i][j] = input.nextInt();
sum[i] = grade[i][j] / 3;
}
}
File file = new File("Students.txt");
try (PrintWriter output = new PrintWriter(file);) {
for (int i = 0; i < 5; i++) {
output.print(number[i] + " ");
output.print(name[i] + " ");
for (int j = 0; j < 3; j++) {
output.print(grade[i] + " ");
}
output.println(sum[i]);
}
}
}
}
为什么输入
1 s 15 65 98
2 ssd 45 86 59
3 dsa 45 69 84
4 sad59 86 65 35
5 sdds 56 25 35
后输出在txt文件变成了图片这样子
因为你在输出分数的时候得到的是分数的地址
应该改为
for (int j = 0; j < 3; j++) {
output.print(grade[i][j] + " ");
}
就可以了,希望对你有帮助。
开启调试,看数据变化就知道了啊!
这个明明是输出的地址啊,学会debug你就知道在哪里转的地址了。
这么写入就这么读出来:
try (PrintWriter output = new PrintWriter(file);) {
for (int i = 0; i < 5; i++) {
output.print(number[i] + " ");
output.print(name[i] + " ");
for (int j = 0; j < 3; j++) {
output.print(grade[i][j] + " ");
}
output.println(sum[i]);
}
}
因为你在输出分数的时候得到的是分数的地址
应该改为
for (int j = 0; j < 3; j++) {
output.print(grade[i][j] + " ");
}
还有。。你的平均分哪里给计算错了吧。。计算的是第三门成绩/3的结果。。