Java编程字符串数组麻烦

时间:2015-03-10 08:45:35

标签: java arrays

import java.util.Scanner;

public class GradePointAverage {

    public static void main(String[] args) {
        Scanner peace = new Scanner(System.in);
        System.out.print("How many subjects do you want to enter?: ");

        int a=peace.nextInt();
        String[] b = new String[a];

        for(int i=0;i<a;i++) {
            b[i]="";    
            System.out.print("Enter Subject No "+(i+1)+" ");
            String c=peace.next();
        }

        for(i=0;i<b.length;i++) {
            System.out.print(b[i]);
        }
    }
}

问候。 :) 我们有一个编程实验,我被困在这一部分。我需要询问用户他想要输入多少科目并要求用户输入科目。我想我已经在阵列中输入了主题,但是当我想看到阵列的内容时,它不能给我我想要的输出,我输入的主题不会出现。请帮助,我在这个网站上新来的,这是我第一次在这样的论坛上提问。希望有人回复。感谢。

3 个答案:

答案 0 :(得分:4)

您永远不会将主题放入数组中。

import java.util.Scanner;

public class GradePointAverage
{

    public static void main(String[] args)
    {
        int i;
        Scanner peace=new Scanner(System.in);
        System.out.print("How many subjects do you want to enter?: ");
        int a=peace.nextInt();
        String []b=new String [a];
        for(i=0;i<a;i++)
        {
            System.out.print("Enter Subject No "+(i+1)+" ");
            b[i]=peace.next();

        }   
            for(i=0;i<b.length;i++)
            {
                System.out.print(b[i]);
            }
    }
}

答案 1 :(得分:2)

您永远不会将字符串分配给数组。

更改

String c=peace.next();

b[i] = peace.next();

此外,您应该在打印数组时添加一些分隔符(或新行):

public static void main(String[] args) 
{
    Scanner peace = new Scanner(System.in);
    System.out.print("How many subjects do you want to enter?: ");
    int a = peace.nextInt();
    String[] b = new String[a];
    for(int i = 0; i < a; i++) {
        System.out.print("Enter Subject No " + (i + 1) + " ");
        b[i] = peace.next();
    }
    for(i = 0; i < b.length; i++) {
        System.out.print(b[i] + " ");
    }
}

答案 2 :(得分:0)

import java.util.Scanner;
public class GradePointAverage
{
    public static double processAverage(int []SubjectGrades,int SubjectsNumber)
    {
        double sum=0;
        double Ave=0;
        for(int i=0;i<SubjectGrades.length;i++)
        {
            sum=SubjectGrades[i]+sum;
        }
            Ave=sum/SubjectsNumber;
            return Ave;
    }
    public static int processNumericalValue(double Ave)
    {
        int Numeral;
        if(Ave>=98.0&&Ave<100.0)
        {
            Numeral=4;
        }
        else if(Ave>=90.0&&Ave<98.0)
        {
            Numeral=3;
        }
        else if(Ave>=80.0&&Ave<90.0)
        {
            Numeral=2;
        }
        else if(Ave>=75.0&&Ave<80.0)
        {
            Numeral=1;
        }
        else
        {
            Numeral=0;
        }
            return Numeral;
    }
    public static void processLetterGrade(int Numeral)
    {
        if(Numeral==4)
        {
            System.out.println("Congratulations!");
        }
        else if(Numeral==3)
        {
            System.out.println("Your Letter Grade is B!");
        }
        else if(Numeral==2)
        {
            System.out.println("Your Letter Grade is C!");
        }
        else if(Numeral==1)
        {
            System.out.println("Your Letter Grade is D!");
        }
        else
        {
            System.out.println("You Failed!");
        }
    }
    public static void main(String[] args)
    {
        double Ave=0;
        Scanner peace=new Scanner(System.in);
        System.out.print("How many subjects do you want to enter?: ");
        int SubjectsNumber=peace.nextInt();
        int []SubjectGrades=new int [SubjectsNumber];
        String []Subjects=new String [SubjectsNumber];
        for(int i=0;i<SubjectsNumber;i++)
        {
            Subjects[i]=""; 
            System.out.print("Enter Subject No "+(i+1)+": ");
            Subjects[i]=peace.next();
            System.out.println("What is your grade in "+Subjects[i]+": ");
            SubjectGrades[i]=peace.nextInt();
        }
            int Numeral;
            Ave=processAverage(SubjectGrades,SubjectsNumber);
            System.out.println("Your General Average is: "+Ave);
            Numeral=processNumericalValue(Ave);
            System.out.println("Numerical Value is: "+Numeral);
            processLetterGrade(Numeral);
    }
}