Pikaista! Osaisko joku auttaa?

Olen päässyt pitkälle tässä ohjelmassa, mutta olen juuttunut tähän paikkaan kaksi päivää. Mulla toimii kaikki paitsi en saa tulostettuu syötetyt luvut.

import java.io.*;

public class Tunnit {
public static void main(String[] args) {

double taulukko[] = new double [31];
double summa, keskiarvo;
int i;
int paivat;

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

try {

System.out.println("Ohjelma laskee yhteen haluamasi ajanjakson aikana tehdyt");
System.out.println("työtunnit sekä keskimääräisen työpäivän pituuden.");

System.out.print("Kuinka monta päivää: ");
paivat = Integer.parseInt(in.readLine());

i = paivat;

for(paivat=1; paivat
41223
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Haluatko siis tulostaa lopuksi kaikki syötetyt tunnit taulukosta "taulukko"? Siirrä tuo tulostus tuonne for-luupin sisään ja aloita for-luupissa käymään nollasta asti läpi.

Kannattaa muuten tehdä for luuppiin aina oma lokaali muuttujansa läpikäymistä varten. Tuo luokkamuuttuja i on minusta vähän outo :D.

Muista muuten, että taulukon indeksointi alkaa nollasta.

Itse tekisin tähän tapaan koko ohjelman:


import java.io.*;

public class Tunnit {
public static void main(String[] args) {

double[] taulukko;
double summa, keskiarvo;

int paivia;

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

try {

System.out
.println("Ohjelma laskee yhteen haluamasi ajanjakson aikana tehdyt");
System.out
.println("työtunnit sekä keskimääräisen työpäivän pituuden.");

System.out.print("Kuinka monta päivää: ");
paivia = Integer.parseInt(in.readLine());

taulukko = new double[paivia]; //Nyt taulukon pituus, eli taulukko.length on paivia

for (int i = 0; i < taulukko.length; i ) {
System.out.print("Anna " i ". päivän työtunnit: ");
taulukko[i] = Double.parseDouble(in.readLine());
}

// Lasketaan työtuntien summa ja keskiarvo.
summa = 0;
for (int i = 0; i < taulukko.length; i )
summa = summa taulukko[i];

keskiarvo = summa / taulukko.length;

// Tulostetaan summa, keskiarvo ja annetut työtunnit.
System.out.println("Tehdyt työtunnit yhteensä: " summa);
System.out.println("Keskimääräinen työpäivän pituus: " keskiarvo);
System.out.println("Syötetyt tunnit: ");
for (int i = 0; i

Äänestä
  • Oho tuo katkesi. Siis tuo lopun tulostus osuus oli



    // Tulostetaan summa, keskiarvo ja annetut työtunnit.
    System.out.println("Tehdyt työtunnit yhteensä: " summa);
    System.out.println("Keskimääräinen työpäivän pituus: " keskiarvo);
    System.out.println("Syötetyt tunnit: ");
    for (int i = 0; i

    Äänestä

  • java kirjoitti:

    Oho tuo katkesi. Siis tuo lopun tulostus osuus oli



    // Tulostetaan summa, keskiarvo ja annetut työtunnit.
    System.out.println("Tehdyt työtunnit yhteensä: " summa);
    System.out.println("Keskimääräinen työpäivän pituus: " keskiarvo);
    System.out.println("Syötetyt tunnit: ");
    for (int i = 0; i

    Näköjään tuota ei voi laittaa, koitetaan:

    Oho tuo katkesi. Siis tuo lopun tulostus osuus oli



    // Tulostetaan summa, keskiarvo ja annetut työtunnit.
    System.out.println("Tehdyt työtunnit yhteensä: " summa);
    System.out.println("Keskimääräinen työpäivän pituus: " keskiarvo);
    System.out.println("Syötetyt tunnit: ");
    for (int i = 0; i < taulukko.length; i ) {
    System.out.println(taulukko[i]);
    }

    } catch (Exception e) {
    System.out.print("VIRHE!!!");
    }
    }
    }


    Tässä siis taulukon pituus päätetään vasta kun on kysytty monta päivää syötetään. Tuo kaikkien mahdollisten virheiden kaappaus on ehkä vähän huono idea, sillä silloin et saa välttämättä niin helpolla selville mistä virhe johtuu, jos joku virhe sattuu tulemaan.

    Äänestä

  • java kirjoitti:

    Näköjään tuota ei voi laittaa, koitetaan:

    Oho tuo katkesi. Siis tuo lopun tulostus osuus oli



    // Tulostetaan summa, keskiarvo ja annetut työtunnit.
    System.out.println("Tehdyt työtunnit yhteensä: " summa);
    System.out.println("Keskimääräinen työpäivän pituus: " keskiarvo);
    System.out.println("Syötetyt tunnit: ");
    for (int i = 0; i < taulukko.length; i ) {
    System.out.println(taulukko[i]);
    }

    } catch (Exception e) {
    System.out.print("VIRHE!!!");
    }
    }
    }


    Tässä siis taulukon pituus päätetään vasta kun on kysytty monta päivää syötetään. Tuo kaikkien mahdollisten virheiden kaappaus on ehkä vähän huono idea, sillä silloin et saa välttämättä niin helpolla selville mistä virhe johtuu, jos joku virhe sattuu tulemaan.

    Lopun voi tehä myös enhanced for-luupilla:
    for(int i : taulukko) {
    System.out.println(i):
    }

    Äänestä

Kommentoi aloitusta


JAVAaja kirjoitti:

Olen päässyt pitkälle tässä ohjelmassa, mutta olen juuttunut tähän paikkaan kaksi päivää. Mulla toimii kaikki paitsi en saa tulostettuu syötetyt luvut.

import java.io.*;

public class Tunnit {
public static void main(String[] args) {

double taulukko[] = new double [31];
double summa, keskiarvo;
int i;
int paivat;

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

try {

System.out.println("Ohjelma laskee yhteen haluamasi ajanjakson aikana tehdyt");
System.out.println("työtunnit sekä keskimääräisen työpäivän pituuden.");

System.out.print("Kuinka monta päivää: ");
paivat = Integer.parseInt(in.readLine());

i = paivat;

for(paivat=1; paivat

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu