JAVA! programering

Tags:    java

<< < 12 > >>
Hej!
Hvis jeg f.eks. har 10 tal som kunne være;

2
3
5
3
2
3
4
5
8
3

så skal jeg finde den mindste tal i denne talrække!

det er så min del af kode som skal ordne det!

public int mindstetal (){

int min = 0;

int x = tallene // det er dem som står ovenover

int y = 0;

int tmp = Integer.MAX_VALUE;

for ( int i = 0; i <= y ; i ++){

if (tmp > x && min < x){

tmp = x;

}

min = tmp;

}

return min;
}

mit problem er så at jeg vha. denne kode for alle tal til at være den mindste.


og hvordan kan jeg så skrive en kode som kan gøre følgende:

2 gange 2
4 gange 3
1 gange 4
2 gange 5
1 gange 8

altså hvor mange gange hvert tal forekommer!!!



11 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
For at kunne lave den udskrift du gerne vil have er du nødt til at vide hvilke tal der kan forekomme (ellers skal du i gang med noget lidt mere hæftig programmering). Lad os sige at tallene 0-9 kan forekomme, så opretter du et array på 10 pladser og initialisere dem alle til 0. Når du så får taget det næste tal ud af rækken lægger du 1 til tallet i den array indgang som passer til tallet.

Eks:
Fold kodeboks ind/udKode 






Hej Liv,

Fold kodeboks ind/udKode 


Med venlig hilsen
Ieet





P.S.
Koden jeg skrev giver følgene output


Det mindste tal var 0
Det største tal var 9

0 forekom 1 gange
1 forekom 1 gange
2 forekom 4 gange
3 forekom 2 gange
4 forekom 2 gange
5 forekom 3 gange
6 forekom 3 gange
7 forekom 3 gange
8 forekom 2 gange
9 forekom 1 gange



Jeg er ikke helt med! Jeg tror ikke at jeg kan vide hvilke tal der kan forekomme det kan være vilkorelige positive tal som skal indlæses fra en fil!!!!!!





Er det koden du ikke forstår eller??
Hvis du ikke ved hvilke tal der kommer til at indgå kan du enten lave et MEGET stort array som dækker samtlige tal der kan være i en Integer, dette kommer dog til at fylde en del. Den anden løsning er at lave en dynamisk løsning via en liste.



det er mest koden!

jeg har prøvet med det her!

public int mindstetal (){
int x = tallene
int[] n = new int[]{x};
Arrays.sort(n);
for (int i = 0; i < n.length; i++) {
System.out.println("TALL " + n);
}
return x;

}




hovsa jeg glemte at skrive at det ikke giver noget pænt det giver at de alle sammen er mindste!



Hmm nu skriver du at int x = tallene, men x kan kun være eet tal og ikke en liste af tal, bagefter skriver du int[] n = new int[]{x} hvilket opretter et array med eet tal nemlig det som der ligger i x. Så nu skal jeg lige være sikker på hvad det er du har gang i her inden jeg kan hjælpe, hvordan får du præcist tallene fra filen stoppet ind og hvordan kalder du metoden???



ok! Nu har jeg set at det sidste ikke er særligt smart!tallene er nogen som jeg udregner vha. funktionen tallene og det er blandt dem jeg skal finde den mindste og derefter sortere dem efter hvor mange gange de forekommer.
2 forekommer gange 2
4 forekommer gange 3
1 forekommer gange 4
2 forekommer gange 5
1 forekommer gange 8

public int mindstetal (){
int min = 0;
int x = tallene() // det er dem som f.eks står ovenover
int y = 0;
int tmp = Integer.MAX_VALUE;
for ( int i = 0; i <= y ; i ++){
if (tmp > x && min < x){
tmp = x;
}
min = tmp;
}
return min;
}




hvad returnere tallene() præcist?? er det en liste over tallene eller returnere den bare et tal af gangen?? Det der forvirre mig er at du hele snakker om den her sekvens af tal, men din kode tager kun højde for 1 enkelt tal. Ikke at jeg vil lyde som en flueknepper men jeg kan virkelig ikke se hvordan det der skulle fungere.
Er du på MSN?? for så tilføj mig SteffenLAndersen@Hotmail.com og send koden til mig, så skal jeg se hvor fejlen ligger.



<< < 12 > >>
t