Zahlen vergleichen



  • Hallo.
    Bin neu im c++ Bereich und hab wirklich nicht viel Ahnung.
    Ich hoffe ihr könnt mir helfen und nehmt bitte Rücksicht 😉
    Es geht um folgendes:
    Ich habe 6 Zufallszahlen erzeucht die ich in einem Vektor gespeichert habe.
    Die zahlen dürfen zwischen 0 und 49 liegen.
    Nun hab ich einen 2 Vektor erzeugt der die Zahlen von 0-49 enthält. Ich möchte nun den 1 Vektor mit den Zufallszahlen mit dem 2 Vektor vergleichen.
    Nun soll er mir quasi den 2 Vektor als Liste anzeigen wobei die 6 Zufallszahlen mit einem Stern markiert werden sollen.

    Beispiel der Ausgabe:

    Zufalllszahlen:
    3
    34
    23
    9
    2
    43

    Liste:
    1
    2*
    3*
    4
    5
    6
    7
    8
    9*
    usw

    Ich weiß aber nicht wie ich diese 6 Zufallszahlen mit der Liste von 0-49 vergleichen soll.
    Ich hoffe ihr könnt mir da ein Beispiel für schreiben.
    Danke!



  • Das riecht verdächtig nach Hausaufgabe.
    Wenn du konkrete Fragen hast: stell sie.
    Ansonsten... ich zumindest werde dir keine komplette Lösung schreiben. Mach mal selber, so schwer ist das nicht.



  • Nun ja...man könnte so vorgehen...

    [cpp]
    CStringArray strArray;
    strArray.SetSize(49);
    for(i=0; i != vec2.size; i++)
    {
    if(vec1[i] == vec2[i])
         strArray[i].Format("%d*",vec2[i]);
    else
         strArray[i].Format("%d",vec2[i]);
    }[/cpp]
    

    wobei vec2, der Vektor ist mit den 49 Zahlen und vec1, der mit den Zufallszallen. Nun hast Du einen StringArray, der das leistet was Du möchtest.

    Sorry, das ist Blödsinn...das kommt davon, wenn man nachts um halb 2 auf Fragen antwortet (und ein Bierchen getrunkten hat 😉 ).

    richtig wäre:

    [cpp]
    CStringArray strArray;
    strArray.SetSize(49);
    for(i=0; i != vec2.size; i++)
    {
    strArray.Add("");
    strArray[i].Format("%d*",vec2[i]); //Zahl zur Liste hinzufügen
    
       for(j=0; j != vec1.size; j++)
          {
          if(vec1[j] == vec2[i])
            strArray[i] += "*"; //Wenn gefunden; String modifizieren
          }
    }[/cpp]
    


  • ich hab jetzt folgendes geschrieben damit er mir die 6 zufallszahlen erstellt.
    es darf aber keine doppelte geben aber irgendwie spuckt er mir keine aus.
    was mach ich falsch?

    #include "stdafx.h"
    #include <stdio.h> // printf scanf
    #include <stdlib.h> // für die Zufallszahl
    #include <time.h>

    void main(void)
    { int i, x, Wurf[5], Lottotip[49];
    char Lotto='-', wurf='*';

    srand(time(0));

    for(i=0; i<=5; i++)
    Wurf[i] = rand()%8; // Bibliotheksfunktion rand
    while (Wurf[1]==Wurf[2])
    {
    Wurf[2] = rand()%8;
    }
    while (Wurf[3]==Wurf[1]||Wurf[3]==Wurf[2]||Wurf[3]==Wurf[4]||Wurf[3]==Wurf[5]||Wurf[3]==Wurf[6]);
    {
    Wurf[3] = rand()%8;
    }
    while (Wurf[4]==Wurf[1]||Wurf[4]==Wurf[2]||Wurf[4]==Wurf[3]||Wurf[4]==Wurf[5]||Wurf[3]==Wurf[6]);
    {
    Wurf[4] = rand()%8;
    }
    while (Wurf[5]==Wurf[1]||Wurf[5]==Wurf[2]||Wurf[5]==Wurf[3]||Wurf[5]==Wurf[4]||Wurf[5]==Wurf[6]);
    {
    Wurf[5] = rand()%8;
    }
    while (Wurf[6]==Wurf[1]||Wurf[6]==Wurf[2]||Wurf[6]==Wurf[3]||Wurf[6]==Wurf[4]||Wurf[6]==Wurf[5]);
    {
    Wurf[6] = rand()%8;
    }

    for(i=0; i<=5;i++)
    printf("%d\n", Wurf[i]);

    for(i=0;i<=49;i++)
    Lottotip[i]=i;

    for(i=0; i<=49;i++)
    printf("%d\n", Lottotip[i]);

    scanf("%d", x);

    }



  • saint20 schrieb:

    ...
    was mach ich falsch?
    ...

    Du benutzt keine Code Tags.
    Soll die Aufgabe in C oder C++ gelöst werden? Das, was du gepostet hast, sieht nach C aus und nicht nach C++.



  • Da sind doch schon mal mehr als genug Fehler drin, oder warum definierst du dasd Array Wurf mit 5 und greifst später auf Wurf[1] - Wurf[6] zu obwohl du eigentlich wissen müsstest das dein Array Wurf nur von 0 - 4 geht. Das sind aber grundlagen die man wissen sollte. Dann deine vielen while´s in denen du was mit oder Vergleichst denk ich machen die Sache auch nicht besser, warum erzeugst du nicht dein Zielarray wo du deine Zufallszahlen rein haben willst, setzt alle 6 zahlen im Array auf Null und lässt solange erstmal eine while laufen solange die 6. stelle im array null is. Jetzt kannste innerhalb deiner while ein efor laufen lassen, die deine Zufallszahl mit jeder Stelle im Array vergleicht, ist die zahl vorhanden, wird die for abgebrochen und eine neue Zahl geholt, triffst du im Array auf eine null, dann schreibst du an der Stelle deine Zufallszahl und gehst in die nächste runde und holst eine neue Zufallszahl, das ganze sind nicht mehr als geschätzte 10 zeilen.


Anmelden zum Antworten