Hola
necesito ayuda urgente
necesito realizar un programa que lea n numeros y almacene en 2 arreglos (10 elementos para cada arreglo), un arreglo que almacene los numeros positivos y otro con los negativos, el numero 0 sera ignorado
ya tengo algo del programa pero la verdad no se si este bien
Citarimport java.util.Scanner;
public class examfinal2{
public static void main(String argumentos[]){
int i=0,po=0,no=0, suma,cont=1,poscon=1,aux=0;
Scanner entrada = new Scanner (System.in);
double promp=0, promn=0;
int datos1[] = new int[10];
int datos2 []= new int[10];
int datos3 []= new int[10];
Scanner numero = new Scanner (System.in);
while (cont!=0){
System.out.printf("Ingresar 10 numeros positivos y 10 numeros negativos");
for (i=0; i<20; i++){
System.out.printf("\nIngresa numero :",i);
datos1 = numero.nextInt();
if (datos1==0){
System.out.println("Ingresar otro valor");
i--;
}
if (datos1>0){
System.out.println("Numero Positivo");
datos2[po]=datos1;
i++;
for(i=0; i<1; i++){
System.out.printf("\nValor: %d posicion: %d",datos2[po], po++);}
}
if (po==10){
System.out.println("\nIngresar otro valor");
datos2[po]=datos1;
po--;
}
if (datos1<0) {
System.out.println("Numero Negativo");
datos3[no]=datos1;
for(i=0; i<1; i++){
System.out.printf("\nValor: %d posicion: %d",datos3[no], no++);}
if (no==10){
System.out.println("\nIngresar otro valor");
datos3[no]=datos1;
i++;
no--;
}
}
}
for(i=0; i<20; i++){
promp= promp+datos2[po];
}
promp= promp/10;
System.out.printf("\nPromedio pares = %f",promp);
for(i=0; i<20; i++){
promn= promn+datos3[no];
}
promn= promn/10;
System.out.printf("\nPromedio impares = %f",promn);
System.out.printf("\nDesea volver a realizar las operaciones? SI[1] NO[0]: ");
cont = entrada.nextInt();
}
}
}
En los arreglos debes indicar la posicion donde guardaras los valores lo cual no haces en datos1 e igual para ver algun valor ocupas indicar la posicion.
Ya casi esta listo lo unico que me falta es sacar el promedio pero no lo saca
me podrias ayudar a saber en que estoy mal?
Citarimport java.util.Scanner;
public class examenfinal{
public static void main(String argumentos[]){
int i=0,po=0,no=0, suma,cont=1,poscon=1,aux=0,n=0;
Scanner entrada = new Scanner (System.in);
double promp=0, promn=0;
int datos2 []= new int[10];
int datos3 []= new int[10];
Scanner numero = new Scanner (System.in);
while (cont!=0){
System.out.printf("Ingresar 10 numeros positivos y 10 numeros negativos");
for (i=0; i<20; i++){
System.out.printf("\nIngresa numero :",n);
n = numero.nextInt();
if (n==0){
System.out.println("Ingresar otro valor");
i--;
}
if (n>0){
System.out.println("Numero Positivo");
if (po!=10){
datos2[po]=n;
System.out.printf("\nValor: %d posicion: %d",datos2[po], po++);
}
else {
System.out.println("\nIngresar otro valor");
i--;
}
}
if (n<0) {
System.out.println("Numero Negativo");
if(no!=10){
datos3[no]=n;
System.out.printf("\nValor: %d posicion: %d",datos3[no], no++);}
else {
System.out.println("\nIngresar otro valor");
i--;
}
}
if(i==20){
promp= promp+datos2[po];
promp= promp/10;
System.out.printf("\nPromedio pares = %f",promp);
promn= promn+datos3[no];
promn= promn/10;
System.out.printf("\nPromedio impares = %f",promn);
}
}
System.out.printf("\nDesea volver a realizar las operaciones? SI[1] NO[0]: ");
cont = entrada.nextInt();
}
}
}
El error esta en que estas intentando sacar el promedio dentro del bucle for, para sacar el promedio primero debes sumar todos los valores leidos y luego al salir del for, dividir la suma de estos entre el total que se leyeron.
Ademas nunca va a entrar a la condicion if(i == 20), ya que el bucle va de 0 a 19; i = 0; i < 20 (esto indica mientras i sea menor a 20 mas no igual), por lo que nunca entraria a ese bucle. Aparte de que promn y el otro solamente tendrian el valor del ultimo valor leido.