Member 13419959 Ответов: 1

Как исправить ошибку "плохие типы операндов для двоичного оператора" + "" в этой программе?


импорт java.io.*;
класс ReportCard
{BufferedReader br =new BufferedReader(новый InputStreamReader(System.in));
int [] roll=new int [40];
String[]name=новая строка [40];
int[]num=new int [40];
String [] add=новая строка [40];
int[]m1=новый int [40];
int[]m2=новый int [40];
int[]m3=новый int [40];
int[]m4=новый int [40];
public void Array () вызывает исключение IOException
{for(int a=0;a< 40; a++)
{System. out. println ("введите номер рулона");
roll[a]=Integer. parseInt(br. readLine());
Системы.из.код println("введите имя студента ");
name[a]=br. readLine();
Системы.из.код println("введите номер телефона ");
num[a]=Integer. parseInt(br. readLine());
Системы.из.код println("введите адрес студента");
добавить[a]=br. readLine();
Системы.из.код println("введите знаки на английском языке");
m1[a]=Integer. parseInt(br. readLine());
Системы.из.код println("введите знаки в математике");
m2[a]=Integer. parseInt(br. readLine());
Системы.из.код println("введите науки");
m3[a]=Integer. parseInt(br. readLine());
Системы.из.код println("введите компьютер");
m4[a]=Integer. parseInt(br. readLine());
}
Системы.из.код println("серийный номер \номер рулона т \т имя Т \номер телефона \адрес т \т английский \математика т \т Науки \Т компьютер");
for (int b=0;b< 40; b++)
{Система.из.код println((Б+1) + "/т" + ролл[Б] + "/Т" + имя[б] + "/т" и клавишу Num[Б] + "/Т" + добавить[Б] + "/Т" + М1[б] + "/т" + м2[б] + "/т" + м3[Б] + "/Т" + М4[б]);
}
}
public void Sort () выбрасывает исключение IOException
{int a, b, t;
для(a=0;a<=49; a++)
для(b=0;b<=48;b++)
если(roll[b]> roll[b+1])
{t=рулон[b];
roll[b]=roll[b+1];
крен[b+1]=t;
Системы.из.код println("отсортированные крен количество студентов : ");
для(a=0;a<=49; a++)
Системы.из.код println(ролл[а]);
}
}
public void Calculate () выбрасывает исключение IOException
{int r;
System. out. println("1. Общая Отметка");
System. out. println("2. Процент");
System. out. println("3. Средний");
System. out. println("4. Класс");
Системы.из.код println("введите Ваш выбор");
int ch=Integer. parseInt(br. readLine());
переключатель (ch)
{случай 1: r=m1+m2+m3+m4;
перерыв;
случай 2: r=(m1+m2+m3+m4) / 100;
перерыв;
случай 3: r=(m1+m2+m3+m4)/4;
перерыв;
случай 4: r=(m1+m2+m3+m4) / 100;
если (r>=90)
Системы.из.код println("а+");
иначе если(r>=80& & amp; r & lt;90)
Системы.из.код println("а");
иначе если(r>=70& & amp; r & lt;80)
Системы.из.код println("в+");
иначе если(r>=60& & amp; r & lt;70)
Системы.из.код println("Б");
иначе если(r>=50& & amp; r & lt;60)
Системы.из.код println("с");
иначе если(r>=40& & amp; r & lt;50)
Системы.из.код println("Д");
еще
Системы.из.код println("Ф");
перерыв;
по умолчанию: System. out. println ("неверный выбор");
перерыв;
}
}
public void Search () выбрасывает исключение IOException
{int f=0;
Sysem. out. println ("введите номер рулона для поиска");
int n=Interger. parseInt(br. readLine());
for (int a=0;a< 40; a++)
{if (n= = roll[a])
{f=1;
}
}
если (f==1)
Системы.из.код println("Поиск успешным");
еще
Системы.из.код println("Поиск неудачен");
}
public static void Main () вызывает исключение IOException
{ReportCard Obj=новая отчетная карточка();
Obj.Массив();
Параметр obj.Вроде();
Obj.Вычислять();
Параметр obj.Поиск();
}
}

Что я уже пробовал:

переключатель (ch)
{случай 1: r=m1+m2+m3+m4;
перерыв;
Это утверждение дает ошибку:-
плохие типы операндов для двоичного оператора'+'
первый тип: int []
второй тип: int []

1 Ответов

Рейтинг:
0

Richard MacCutchan

Вы не можете добавить массивы с простым двоичным операндом, и вы, конечно, не можете сохранить результат в одном целочисленном. Вам нужно написать цикл для суммирования отдельных элементов.

В будущем, пожалуйста, показывайте только соответствующие части вашего кода, правильно отформатированные и заключенные в теги & lt;pre> Для удобства чтения, таким образом:

switch(ch) {
case 1:
    r=m1+m2+m3+m4;
    break;
}