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