Array in BlueJ

1 Antwort

mit Math.random kannst du zufallszahlen erzeugen. ich würde das array erzeugen, dann mit einer for schleife for(int i=0;i<12;i++) eine random ganzzahl erzeugen und jeweils an stelle i im array einfügen also array[i] = math.random (natürlich liefert math.random nur eine zahl zwischen 0 und 1 muss also noch mit mathematik modifiziert werden z.b. Math.random*10. checken welche die größte zahl im array ist kannst du ebenfalls mit einer forschleife erst eine "merkvariable" erzeugen für dich int zwischenspeicher=array[0] for(int a=1;azwischenspeicher) zwischenspeicher=array[a] } dann hast du wenn diese forschleife durchgelaufen ist in der variable zwischenspeicher die größte zahl des arrays. den code den ich geschrieben hab zu kopieren wird nichts bringen da ich der einfachheit halber etwas syntax gekürzt hab. (nagut ich will einfach nur dass du dir selber gedanken machst^^)

huch das hab ich eigentlich anders eingegeben .. "for(int a=1;azwischenspeicher)" sollte heißen: for(int a=1;a<array.length;a++)

0

Danke ! Das hilft mir wirklich weiter :)

0

c++ lineare Suche?

ich muss eine klasse ergänzen um die Methode seqsuch(..) fur die sequentielle suche nach einer ganzen Zahl im Feld Die Methode erhält die gesuchte Zahl als parameter wir die Zahl gefunden wird der Index der gefundenen Zahl zurückgeliefert oder -1 wenn die Zahl nicht gefunden wird. kann jemand mir helfen es geht nicht ?

#include <iostream>

#include <cstdlib>

#include <conio.h>

#include <ctime>

using namespace std;

class CZahlen{

private:

  int maxZuf;

  int groesse;

  int anzahl;

  int feld[5000];

public:

  void start()

  {

    anzahl = 0;

    groesse = 5000;

    maxZuf = 100000;

    for(int i= groesse; i>0; i--) feld[i]=0;

  }

  void zufallszahlen(int gz){

    if(gz>groesse)

    {

      cout << "Fehler das Array ist nicht groß genug!" << endl;

      getch();

    }

    else{

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

        feld[i]=rand()%(maxZuf+1);

        anzahl = i;

      }

    }

  }

  void ausgeben()

  {

    if(anzahl==0)

      cout << "Das Array ist leer!" << endl;

    for(int i=0; i<anzahl; i++)

      cout << feld[i] << ", ";

  }

  int seqSuch(int x)

  {

    int pos=0;

    bool gefunden=false;

    do

    {

      if(feld[pos]==x)

      {

        gefunden=true;

      }

    }while (gefunden=false && pos<anzahl);

    if(gefunden=true)

    {

      return pos;

    }

    else

    {

      return -1;

    }

  }

};

int main()

{

  srand(time(NULL));

  CZahlen z1,test;

  z1.start();

  z1.zufallszahlen(10);

  z1.ausgeben();

  cout<<endl;

  z1.zufallszahlen(20);

  z1.ausgeben();

  cout<<endl;

  

  cout<<z1.seqSuch(8);

  cout<< "-- Ende --" <<endl;

}

...zur Frage

Wie gebe ich nach Erzeugung eines Objektes ein "int" Array im BlueJ-Methodenaufruf ein?

Ich sitze vor einem eigentlich so banalem Problem. Ich habe eine Methode geschrieben die durch Benutzereingabe einen String und ein int Array beim Aufruf übernehmen soll. Ich weiß wie ich den String in BlueJ beim Aufruf eingebe. Einfach in die "meinStringEingeben", aber wie mache ich das beim int Array oder überhaupt bei einem Array? Ich habe so einiges versucht. "Gefunden" habe ich nur diese Möglichkeit { irgendEineZahl } ABER wenn ich das mache dann erzeugt er kein int array sondern ein einfaches int, wodurch es selbstverständlich dann zum ArrayIndexOutOfBoundsException Auswurf kommt.

Mein Methodenkopf sollte auch nicht die Quelle des Übels sein

void meineMethode (String string, int[] intArray) deklariert habe.

...zur Frage

Wie generiert man Zufallszahlen ohne Duplikate in vb?

Guten Tag

Ich erstelle ein Quiz. Die Fragen stehen in einem Array. Um eine Frage als Text anzuzeigen habe ich diesen Code: lblQu.Text = frage(rnd)

rnd steht dabei für eine Zufallszahl.

Ich will aber nicht das eine Frage doppelt vorkommt. Kann mir da jemand helfen?

...zur Frage

zufällige karte aus Array ohne wiederholungen ziehen?

Google wurde bereits verwendet, nur finde ich bei meiner frage nur themen wo es darum geht ein array mit zufallszahlen zu füllen. ..

Die idee ist das ein array 32 karten enthält.

es wird gemischt und es sollen 3 zufällige karten ausgegeben werden, allerdings dürfen keine doppelten gezogen werden.

grob formuliert will ich das im ersten durchlauf der forschleife die erste gezogene karte aus dem array gelöscht wird, das array um eins verkleinert wird und der zweite durchlauf beginnt.

Kann mir jemand stichwörtet zum googeln geben oder ein kleines code beispiel schreiben?

____________________EDIT _____________________

Sieht das ganze so einfacher aus? Falls meine Methode annehmbar ist, müsste ich es nurnoch hinbekommen das aus den 3 zahlen keine doppelte ist. 

srand(unsigned(time(nullptr)));
size_t size = 3;
vector  array(size);
int give;
for (give = 0; give < 3; give++)
{
array[give] = rand() % 3 + 1;
cout << array[give] << " / "; 
}
...zur Frage

Was möchtest Du wissen?