我想知道两个不同数组的平均数是多少.实际上是我做的,问题是,我正在进行验证,以确保两个数组具有相同的长度.因此,当我犯了错误(故意)以不同的方式定义其中一个数组的长度时,它会显示错误消息,并返回到定义数组长度,但当我对平均值进行计算时,由于某种原因,它返回错误的结果.从字面上看,一切都运行得很好,除了调用了函数ComparValore()时.
请救救我.
import java.util.Scanner;
public class MediaVetores {
public static void main(String[] args) {
int vec1 [];
int vec2 [];
vec1 = lerVetor1();
vec2 = lerVetor2();
mediaVetores(vec1, vec2);
}
static int lerInteiro(String pergunta){
System.out.println(pergunta);
Scanner ler = new Scanner(System.in);
return ler.nextInt();
}
static int [] lerVetor1(){
int tamVetor = lerInteiro("Quantos valores quer inserir no 1º vetor?: ");
int vec1 [] = new int [tamVetor];
for (int i = 0; i < tamVetor; i++){
vec1 [i] = lerInteiro("Insira o valor do " + (i+1) + "º número do vetor: ");
}
return vec1;
}
static int [] lerVetor2(){
int tamVetor = lerInteiro("Quantos valores quer inserir no 2º vetor?: ");
int vec2 [] = new int [tamVetor];
for (int i = 0; i < tamVetor; i++){
vec2 [i] = lerInteiro("Insira o valor do " + (i+1) + "º número do vetor: ");
}
return vec2;
}
static void mediaVetores(int vec1 [],int vec2 [] ){
int n1 = 0;
int c1 = 0;
int n2 = 0;
int c2 = 0;
int total = 0;
int soma = 0;
double media = 0.0;
for (int i = 0; i < vec1.length; i++){
n1 = n1 + vec1[i];
c1 ++;
}
for (int j = 0; j < vec2.length; j++){
n2 = n2 + vec2[j];
c2 ++;
}
soma = n1 + n2;
System.out.println(soma);
total = c1 + c2;
System.out.println(total);
compararVetores(vec1, vec2);
media = (double) soma / (double) total;
System.out.println("A média dos valores inseridos nos vetores é de " + media);
}
static void compararVetores (int a[], int b[]){
if (a.length != b.length){
System.out.println("Os vetores devem ter o mesmo número de valores! Volte a introduzir novos tamanhos de vetores.");
lerVetor1();
lerVetor2();
}
}
}