Neuling braucht Ratschläge/Hilfe



  • Diandranewby schrieb:

    ah ich habs raus, diese Funktion muss in meiner mainfunktion als lokale Variable auftauchen und sie darf keine globale Variable sein ^^ warum ist das so?

    Ganz sicher muss das nicht so sein. Vielleicht bringst du einen Funktionsaufruf mit der Deklaration einer Variablen durcheinander. Ich weiß zwar nicht warum, weil die wirklich vollkommen anders aussehen, aber das ist die einzige Erklärung.

    int g; // <- Deklaration einer globalen Variablen
    srand(5); // Funktionsaufruf, hier nicht erlaubt
    
    int main() {
      int x;  // <-- Deklaration einer lokalen Variablen
      srand(5); // <-- Funktionsaufruf
    }
    


  • Diandranewby schrieb:

    return anfang+(int)(r*rand()/(RAND_MAX+1,0));
    

    Statt dem Komma muß da ein Punkt hin (sonst teilst du immer durch 0 - Stichwort: Sequenzoperator!), also

    return anfang+(int)(r*rand()/(RAND_MAX+1.0));
    


  • Diandranewby schrieb:

    hier nochmal die Funktionen die ich dafür benutze

    int irand(int anfang, int ende)
    {
    	double r = ende-anfang+1;
    	return anfang+(int)(r*rand()/(RAND_MAX+1,0));
    }
    
    int vector_in(int *vecname,int anfang, int ende)
    {
    	for(int i=0;i<anzahl;i++)
    	{
    		*(vecname+i) = irand(anfang, ende);
    	}
    	return 0;
    }
    

    vec_in hat gar keinen Parameter anzahl - d.h. Du hantierst da doch irgendwo mit globalen Variablen rum. Das ist nicht gut.
    Was hast Du Dir denn bei dem Rückgabewert (0) gedacht? Ist ein Rückgabewert, der immer 0 ist nicht überflüssig wie ein Loch im Knie?


Anmelden zum Antworten