Winter olympics



Detta program beräknar vilka som kommit i de tre första platserna i en skridskotävling. Huvudprogrammet frågar efter de tävlandes namn, nationalitet, och de poäng de fick av de sju domarna. därefter anropas funktionen sort som med hjälp av bubbel sortering sorterar domarnas poäng i storleksordning. Programmet bortser därefter från den minsta och högsta domarpoängen, (index 0 och 6 i arrayen) och beräknar ett slutresultat för den tävlande baserat på de fem återstående domar poängen. Slutresultaten för alla tävlande skickas till funktionen highest() där de tre högsta slutresultaten väljs och skickas tillbaka, och skrivs ut i huvudprogrammet.


import java.io.*;
class olympics {

public static double[] sort(double numbers[]) 
throws Exception 
{
                      int flag = 1;
                      int x;
                      int n = 0;
                      double temp;
                      do  {
                         flag = 0;
                         n=n+1;
                         for (x=0 ; x < numbers.length - n; x++)
                           {
                           if (numbers[x] > numbers[x+1])
                               {
                               temp = numbers[x];
                               numbers[x] = numbers[x+1];
                               numbers[x+1] = temp;
                               flag = 1;
                               }
                           } 
                         }  while (flag != 0);
                         return numbers;
}

public static int[] highest(double numbers[]) 
throws Exception 
{
int x;
int i=0;
int k=0;
int[] high=new int[3];
double temp=numbers[0];
for (i=0 ; i < 3; i++)
{
for (x=0 ; x < numbers.length-1; x++)
    {
    if (temp > numbers[x+1])
        {
        high[i]=k;
        }
    if (temp < numbers[x+1])
        {
        high[i]=x+1;
        temp=numbers[x+1];
        }
        k=high[i];
    }
    numbers[k]=0;
    k=0;
    temp=numbers[0];
}
return high;
}

public static void main (String args[])
throws Exception
{
    InputStreamReader isr;
    BufferedReader keyb;
    isr = new InputStreamReader(System.in);
    keyb = new BufferedReader(isr);
    System.out.print("Ange antalet deltagare: ");
    String inmatning;
    inmatning=keyb.readLine();
    int antal = Integer.valueOf(inmatning).intValue();  //String to int
    String[] namn=new String[antal];
    String[] landskod=new String[antal];
    double[] [] poang=new double [antal] [7];
    double[] osorteradpoang=new double [7];
    double[] sorteradpoang=new double [7];
    double[] score=new double[antal];
    double[] checkscore=new double[antal];
    int[] highscore=new int[3];
    for(int i=0; i<=antal-1; i++) 
        { 
        System.out.print("Ange namn nummer "+ (i+1) + ": "); 
        inmatning=keyb.readLine(); 
        namn[i]=inmatning;
        System.out.print("Ange landskod (tre bokstäver) för " + namn[i] + ": "); 
        inmatning=keyb.readLine(); 
        landskod[i]=inmatning;
        for(int j=0; j<=6; j++) 
            {
            System.out.print("Ange poängen från domare nummer " + (j+1) + ": "); 
            inmatning=keyb.readLine();
            poang[i][j]=Double.valueOf(inmatning).doubleValue();  //String to int
            }
        }
        for(int i=0; i<=antal-1; i++) 
            { 
            System.out.print(namn[i] + " " + landskod[i]);
            for(int j=0; j<=6; j++) 
                {
                osorteradpoang[j]=poang[i][j];
                System.out.print(" " + poang[i][j]);
                }
            sorteradpoang=sort(osorteradpoang);
            score[i]=((sorteradpoang[1]+sorteradpoang[2]+sorteradpoang[3]+sorteradpoang[4]+sorteradpoang[5])/5);
            System.out.println(" Score " + score[i]);
            checkscore[i]=score[i];
            }
            highscore=highest(checkscore);
            System.out.println();
            System.out.println(" Gold Medal " + namn[highscore[0]] +" "+ landskod[highscore[0]]+" " + score[highscore[0]]);
            System.out.println(" Silver Medal " + namn[highscore[1]] +" "+ landskod[highscore[1]]+" " + score[highscore[1]]);
            System.out.println(" Bronze Medal " + namn[highscore[2]] +" "+ landskod[highscore[2]]+" " + score[highscore[2]]);

 }
}



Tillbaks till huvudsidan

email: Alireza.Niai_nouri.2077@student.uu.se