rückgabewert einer funktion in Array speichern



  • hi!
    ich rufe mit einer schleife eine funktion auf die dann 5 werte ausgibt. nun möcchte ich die rückgabewerte in einem array speichern, so das ich sie mit bubblesort sortieren kann.
    leider klappt das nicht so richtig.
    bei mir werden nicht die werte der funktion ins array gespeichert sonder dort stehen andere zahlen bzw zahlenketten wie 2934535

    int k = 0;
    int l;
    int z = 0;
    int wert[6];
    int result;
    
    l = sizeof (pMeineStrings) / sizeof (int);
    for (k = 0; k < l - 1; k++)
    {
        ZaehleSuchzeichen(pMeineStrings[k]);
        wert[z] = result;
        z++;
        printf("%d", wert);
    }
    

    so sieht es zur zeit aus. die werte der funktion werden in result gepseichert und die sollen halt an das array wert[] übergeben werden.

    Edit by c.rackwitz: Code durch indent geschickt



  • dein geposteter code ist unbrauchbar.
    poste bitte etwas, das man kompilieren kann.

    edit: bitte ruecke deinen code ordentlich ein. du kannst nicht erwarten, dass sich jemand unlesbaren code anzieht.



  • ist dir klar was ein Rückgabewert ist? in deinem Beispiel weißt du dem Array dem Wert der Variablen result zu - die Variable result ist aber nicht initialiseirt, enthält also irgendwelche Zahlenwerte

    l = sizeof (pMeineStrings) / sizeof (int);
    

    welchen Typ hat pMeineStrings?

    du solltest sinnvolle Variablennamen vergeben oder wenigstens einen Kommentar dahinter schreiben wozo die Bezeichner benötigt werden



  • hier mal mein ganzer code

    #include <stdio.h>
    
    char *pMeineStrings[] = {
        "Langer Text.",
        "Sehr langer Text.",
        "Killroy was here !!",
        "Bill",
        "Pssst, pssst ... Ruhe!",
        "\0\0"
    };
    char zuSuchen[] = "aeiou";
    
    int result;
    
    /*Ausdrucken der Stringlist*/
    void PrintStringliste(char *pM[])
    {
        int j;
    
        for (j = 0; pM[j][0] != '\0'; j++)
        {
            printf("%s\n", pM[j]);
        }
    
    }
    
    /*Zähle wie häufig die Scuhzeichen im angegebenen String vorkommen*/
    int ZaehleSuchzeichen(char *str)
    {
        int i = 0;
        int j = 0;
        int result = 0;
    
        while (zuSuchen[i] != 0)
        {
            while (str[j] != 0)
                if (str[j++] == zuSuchen[i])
                    result++;
            j = 0;
            i++;
        }
    
        printf("\n%d\n\n\n", result);
    
        return result;
    }
    
    /*Sortieren einer Vektorentabelle der Länge nach*/
    void SortiereStrings();
    
    int main()
    {
        int k = 0;
        int l;
        int z = 0;
        int wert[6];
    
        PrintStringliste(pMeineStrings);
        l = sizeof (pMeineStrings) / sizeof (int);
        for (k = 0; k < l - 1; k++)
        {
            ZaehleSuchzeichen(pMeineStrings[k]);
            wert[z] = ZaehleSuchzeichen(pMeineStrings[k]);
            z++;
            printf("%d", wert[]);
        }
    }
    

    nun hab ich es hinbekommen aber er zeigt immer noch die zahlen kombinationen von aben an. was ist das?

    Edit by c.rackwitz: tut mir Leid, dass ich in deinem Post editieren muss, aber deinen Code kann ich ohne Formatierung nicht entziffern. Bitte poste deinen Code in Zukunft ordentlich formatiert, okay?


Anmelden zum Antworten