elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: [1]
1  Programación / Java / Ayuda con problemas de array y vectores en: 4 Febrero 2016, 16:13 pm
Pues veréis en este codigo que os paso ahora me da el problema que no suma bien las puntuaciones ya que no vacia el vector cada vez que empieza de nuevo.

En cada jornada, el golfista con menor número de golpes obtiene 3 puntos, el segundo con menor
número de golpes obtiene 2 puntos y el tercero con menor número de golpes obtiene 1 punto
(pueden existir varios golfistas con el mismo número de golpes, por lo que hay varios que pueden
obtener 3 puntos, varios que pueden obtener 2 puntos y varios que pueden obtener 1 punto).
Para calcular el número de puntos se usa la función calculaPuntosDeJornada(int [] punt_golf),
que guarda en el vector los puntos que obtiene cada golfista.

Código:
public class golfistas {

final static int N = 5;// golfistas
final static int M = 4;// jornadas
// public static int golfistas_jornadas[][] = new int[N][M];
public static int[][] golfistas_jornadas = { { 10, 12, 10, 14 }, { 11, 9, 13, 14 }, { 12, 11, 10, 14 },
{ 10, 13, 10, 10 }, { 10, 15, 12, 12 } };

public static void main(String[] args) {
int[] punt_golf = new int[N];
// rellenaMatriz();
muestraResultados();
calculaPuntosDeJornada(punt_golf);

}

private static void calculaPuntosDeJornada(int[] punt_golf) {
int primero = 99, segundo = 99, tercero = 99;
int golpes[] = { primero, segundo, tercero };


// i=golfista
// j=jornada
int j = 0,  cont,  k ;
while (j < M) {
int v_final[] = new int[5];
//for (int i = 0; i < golfistas_jornadas.length; i++) {
int num=0, x=0, z = 0;
int v_aux[] = new int[5];

for (int p = 0; p <5; p++) {
cont = 0;
num = golfistas_jornadas[p][j];
v_aux[x] = num;
x++;
for (k = 0; k < 5; k++)
if (v_aux[k] == num)
cont++;

if (cont == 1) {
v_final[z] = num;
z++;
}
}
System.out.println("Vector final eliminando repetidos\n" + Arrays.toString(v_final));

int i2=0, temp=0, j2=0;

for (i2 = 1; i2 < v_final.length; i2++) {
temp = v_final[i2];
j2 = i2 - 1;
while ((j2 >= 0) && (v_final[j2] > temp)) {
v_final[j2 + 1] = v_final[j2];
j2--;
}
v_final[j2 + 1] = temp;
}
System.out.println("Vector final ordenado\n" + Arrays.toString(v_final)); 
 
  //}
for (int i = 0; i < v_final.length; i++) {
if (v_final[i] < golpes[0] && v_final[i]>0) {
  golpes[0]=v_final[i];
  }
 
if (v_final[i] < golpes[1] && v_final[i]>0 && v_final[i]>golpes[0]) {
  golpes[1]=v_final[i];
  }
if (v_final[i] < golpes[2] && v_final[i]>0 && v_final[i]>golpes[1]) {
  golpes[2]=v_final[i];
  }

}
System.out.println("Vector golpes\n" + Arrays.toString(golpes));

for (int i = 0; i < golfistas_jornadas.length; i++) {
if (golfistas_jornadas[i][j]==golpes[0]){
punt_golf[i]+=3;
}
if (golfistas_jornadas[i][j]==golpes[1]){
punt_golf[i]+=2;
}
if (golfistas_jornadas[i][j]==golpes[2]){
punt_golf[i]+=1;
}
System.out.println("Vector puntos parciales\n" + Arrays.toString(punt_golf));
}
j++;

}

System.out.println("Vector puntos totales\n" + Arrays.toString(punt_golf));
}

A ver si podéis echarme una manita :)
2  Programación / Programación General / Problema al buscar menor en un array y puntuar en: 3 Febrero 2016, 11:09 am
Pues veréis en este codigo que os paso ahora me da el problema que no suma bien las puntuaciones ya que no vacia el vector cada vez que empieza de nuevo.

En cada jornada, el golfista con menor número de golpes obtiene 3 puntos, el segundo con menor
número de golpes obtiene 2 puntos y el tercero con menor número de golpes obtiene 1 punto
(pueden existir varios golfistas con el mismo número de golpes, por lo que hay varios que pueden
obtener 3 puntos, varios que pueden obtener 2 puntos y varios que pueden obtener 1 punto).
Para calcular el número de puntos se usa la función calculaPuntosDeJornada(int [] punt_golf),
que guarda en el vector los puntos que obtiene cada golfista.




Yo he echo lo siguiente
Código:
public class golfistas {

final static int N = 5;// golfistas
final static int M = 4;// jornadas
// public static int golfistas_jornadas[][] = new int[N][M];
public static int[][] golfistas_jornadas = { { 10, 12, 10, 14 }, { 11, 9, 13, 14 }, { 12, 11, 10, 14 },
{ 10, 13, 10, 10 }, { 10, 15, 12, 12 } };

public static void main(String[] args) {
int[] punt_golf = new int[N];
// rellenaMatriz();
muestraResultados();
calculaPuntosDeJornada(punt_golf);

}

private static void calculaPuntosDeJornada(int[] punt_golf) {
int primero = 99, segundo = 99, tercero = 99;
int golpes[] = { primero, segundo, tercero };


// i=golfista
// j=jornada
int j = 0,  cont,  k ;
while (j < M) {
int v_final[] = new int[5];
//for (int i = 0; i < golfistas_jornadas.length; i++) {
int num=0, x=0, z = 0;
int v_aux[] = new int[5];

for (int p = 0; p <5; p++) {
cont = 0;
num = golfistas_jornadas[p][j];
v_aux[x] = num;
x++;
for (k = 0; k < 5; k++)
if (v_aux[k] == num)
cont++;

if (cont == 1) {
v_final[z] = num;
z++;
}
}
System.out.println("Vector final eliminando repetidos\n" + Arrays.toString(v_final));

int i2=0, temp=0, j2=0;

for (i2 = 1; i2 < v_final.length; i2++) {
temp = v_final[i2];
j2 = i2 - 1;
while ((j2 >= 0) && (v_final[j2] > temp)) {
v_final[j2 + 1] = v_final[j2];
j2--;
}
v_final[j2 + 1] = temp;
}
System.out.println("Vector final ordenado\n" + Arrays.toString(v_final));  
 
 //}
for (int i = 0; i < v_final.length; i++) {
if (v_final[i] < golpes[0] && v_final[i]>0) {
 golpes[0]=v_final[i];
 }
 
if (v_final[i] < golpes[1] && v_final[i]>0 && v_final[i]>golpes[0]) {
 golpes[1]=v_final[i];
 }
if (v_final[i] < golpes[2] && v_final[i]>0 && v_final[i]>golpes[1]) {
 golpes[2]=v_final[i];
 }

}
System.out.println("Vector golpes\n" + Arrays.toString(golpes));

for (int i = 0; i < golfistas_jornadas.length; i++) {
if (golfistas_jornadas[i][j]==golpes[0]){
punt_golf[i]+=3;
}
if (golfistas_jornadas[i][j]==golpes[1]){
punt_golf[i]+=2;
}
if (golfistas_jornadas[i][j]==golpes[2]){
punt_golf[i]+=1;
}
System.out.println("Vector puntos parciales\n" + Arrays.toString(punt_golf));
}
j++;

}

System.out.println("Vector puntos totales\n" + Arrays.toString(punt_golf));
}


A ver si me podéis echar una mano porque llevo varios día ya para solucionar esto y no hay manera.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines