scut小辣鸡
2017-09-20 09:04
采纳率: 28.6%
浏览 794
已采纳

新人求问Java文件输入输出小问题

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文件变成了图片这样子图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • HolyJohn 2017-09-20 09:36
    已采纳

    因为你在输出分数的时候得到的是分数的地址
    应该改为
    for (int j = 0; j < 3; j++) {
    output.print(grade[i][j] + " ");
    }
    就可以了,希望对你有帮助。

    点赞 评论
  • MR_WRONG_Man 2017-09-20 09:17

    开启调试,看数据变化就知道了啊!

    点赞 评论
  • 新生代农民工_001 2017-09-20 09:33

    问题出现在这一行-----output.print(grade[i] + " ");

    修改为------ System.out.print(grade[i][j] + " ");

    点赞 评论
  • m0_37535086 2017-09-20 10:07

    这个明明是输出的地址啊,学会debug你就知道在哪里转的地址了。

    点赞 评论
  • RngMng_3344 2017-09-20 10:13

    这么写入就这么读出来:
    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]);
    }
    }

    点赞 评论
  • Ginger_xin 2017-09-20 11:28

    因为你在输出分数的时候得到的是分数的地址
    应该改为
    for (int j = 0; j < 3; j++) {
    output.print(grade[i][j] + " ");
    }

    点赞 评论
  • 梦一场丶 2017-09-21 06:34

    还有。。你的平均分哪里给计算错了吧。。计算的是第三门成绩/3的结果。。

    点赞 评论

相关推荐 更多相似问题