2015-03-10 2 views
0
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]); 
     } 
    } 
} 

Приветствия. :) У нас есть эксперимент по программированию, и я был застрял в этой части. Мне нужно спросить у пользователя, сколько предметов он хочет ввести, и попросить пользователя ввести предметы. Я думаю, что я уже ввел объекты в массив, но когда я хочу видеть содержимое массива, он не даст мне мой желаемый результат, темы, которые я ввел, не появятся. Пожалуйста, помогите, я новичок здесь, на этом сайте, и это мой первый раз, чтобы задать вопрос на форуме вроде этого. Надеюсь, что кто-то ответит. Благодарю.Программирование на языке Java Ошибка строкового массива

+0

заменить 'Строка с = peace.next()' 'с б [I] = peace.nextLine();' – EpicPandaForce

+0

Jens правильно, вы ничего не делаете с Струнный с. Также вы можете использовать более подходящие имена переменных. Это поможет предотвратить путаницу. т.е.: сканер peaceScanner, int a -> int subjectCount. int i является обычным, хотя поэтому проблем нет, хотя я бы объявил его в вашем цикле -> for (int i ... –

+1

Просто предложение: назовите свои переменные значимыми именами! Не 'a',' b', ' c', но 'subjectNumber',' предметы', 'предметыName'. – Enrichman

ответ

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] + " "); 
    } 
} 
+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]); 
      } 
    } 
} 
+0

Спасибо. Теперь я знаю. :) –

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); 
    } 
} 
Смежные вопросы