Getallen in lezen en dan een bewerking uitvoeren.

Status
Niet open voor verdere reacties.

stevZZZ

Nieuwe gebruiker
Lid geworden
28 jan 2009
Berichten
3
Kan iemand deze oefening oplossen in java (blue j)

Alvast bedankt

verschillende getallen (maximaal 256) worden achtereenvolgens ingegeven en in een reeks
weggeschreven, tot het getal 999999 wordt ingevoerd. Dit getal hoort zelf niet tot de reeks.
Deel vervolgens elk van de getallen in de reeks door de hoogste absolute waarde van de
ingevoerde getallen en geef daarna de nieuwe reeks verkregen getallen weer op het scherm.

Dit heb ik al geprobeerd.

System.out.print("Geef de getallen in(stoppen met 9999: ");
int [ ] rij= new int [256];
int getal=0;
double uikomst=0;
int maxj=0;

for (int i=0;i<256;i++)
{rij[getal]= tb.readInt();
while (getal = 9999)
{uitkomst += rij[getal];
if (rij[getal] > max)
{ max=rij[getal];
maxj=getal;
}
 
Laatst bewerkt:
Dit riekt naar huiswerk.
Zou je daarnaast de titel willen aanpassen zodat deze je probleem beter omschrijft.

Wat heb je zelf al geprobeerd?
 
Je kan dit niet in 1 for loop doen..

Je programma zal een ander opzet moeten krijgen..

for ( ) {
vul array met invoer...
als invoer = 99999 break...
houdt gelijk het hoogste getal bij...
}

for ( ) {
deel alle getallen door het hoogste getal..
}
 
Die 2 for zijn toch het zelfde dan ?
for (int i=0;i<256;i++)
 
DIt heb ik tot nu toe

System.out.print("geef getal: ");


int [] rij = new int [256]; //configureer de array hier
int u=0; // declareer alles wat je gebruik
int getal=0;
int getalt=0;

for (int i=0;i<256;i++)
{ rij [getal]= tb.readInt();
if (getal!=99999);
break;}
for (int i=0;i<256;i++)
{ u= rij[getal];
rij[getalt]=tb.readInt();
int k=getal/getal;

{ System.out.print("de uitkomst is: "+k) ;
}

}
}
}
 
Code:
rij [getal]= tb.readInt();

getal is (en blijft) 0, dus hier schrijf je continue het getal op positie 0.

Code:
if (getal!=99999);
break;}

Zelfde hier, getal is 0. Bovendien draai je het hier om. "break" wordt uitgevoerd als getal ongelijk is aan 99999 en de puntkomma moet weg achter het if statement, anders wordt de break altijd uitgevoerd.

Code:
for (int i=0;i<256;i++)
{ u= rij[getal];
rij[getalt]=tb.readInt();
int k=getal/getal;

Hier ga je opnieuw de array vullen, terwijl je in deze loop alleen elk getal hoeft te delen door het hoogste getal. Het hoogste getal kan je, zoals Skinflowers al zei, het makkelijkste bijhouden in de eerste loop.
 
Laatst bewerkt:
int [] rij = new int [256]; //configureer de array hier
int u=0; // declareer alles wat je gebruik
int getal=0;
int getalt=0;

for (int i=0;i<256;i++)
{ rij [getal]= tb.readInt(); // dit moet zijn rij en twee regels getal = tb.readInt(); rij = getal;
if (getal!=99999); // geen ; na if() , leer je aan om altijd { } te gebruiken na een if().. en je moet stoppen als getal == 9999.
break;}
for (int i=0;i<256;i++)
{ u= rij[getal]; // ook hier rij.... en if u == 99999 dan moet je weer stoppen...
rij[getalt]=tb.readInt(); // deze regel moet weg.
int k=getal/getal; // k = getal / max.

{ System.out.print("de uitkomst is: "+k) ;
}

}
}
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan