Wieso funktioniert der Code nicht?



  • #include <iostream>
    #include <time.h>
    
    using namespace std;
    
    int main()
    {
    	srand(time(NULL));
    	double j[10][10];
    	for(int i = 0; i < 10; ++i)
    	{
    		for(int h = 0; h < 10; ++h)
    			cout << j[i][h] = rand() % 100;
    	}
    }
    

    Fehler:

    error C2679: Binärer Operator '=': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'int' akzeptiert (oder keine geeignete Konvertierung möglich)
    \microsoft visual studio 9.0\vc\include\ostream(584): kann 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator =(const std::basic_ostream<_Elem,_Traits> &)' sein
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    bei Anpassung der Argumentliste '(std::basic_ostream<_Elem,_Traits>, int)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]



  • #include <iostream>
    #include <time.h>
    
    using namespace std;
    
    int main()
    {
        srand(time(NULL));
        double j[10][10];
        for(int i = 0; i < 10; ++i)
        {
            for(int h = 0; h < 10; ++h)
            {
               j[i][h] = rand() % 100;
               cout << j[i][h] << endl; 
            }
        }
    }
    


  • Operatorpriorität. << hat höhere Prio als op=. Der versucht grad nen op=(ostream&, int) zu finden.
    Versuch nicht alles in einer Zeile unter zu bekommen. Mach das doch schritt für schritt. was erwartest du dir von der Ausgabe?



  • Danke, habe es verbessert:

    #include <iostream>
    #include <time.h>
    
    using namespace std;
    
    int main()
    {
        srand(time(NULL));
        double j[10][10];
        for(int i = 0; i < 10; ++i)
        {
            for(int h = 0; h < 10; ++h)
            {
               j[i][h] = rand() % 9;
               cout << " " << j[i][h];
            }
    		cout << " : " << endl;
        }
    	for(int f = 0; f < 21; ++f)
    	{
    		cout << "-";
    	}
    	cin.get();
    }
    


  • #include <iostream>
    #include <time.h>
    
    using namespace std;
    
    int main()
    {
        srand(time(unsigned(NULL)));
        double j[10][10];
        for(int i = 0; i < 10; ++i)
        {
            for(int h = 0; h < 10; ++h)
                cout << (j[i][h] = rand() % 100) << endl;
        }
    }
    

    "Z" und "l'abra d'or" haben aber Recht, sowas ist ungewöhnlich und macht man eig. nicht. Besser ist es Zuweisungen seperat zu machen und nicht mitten in einer Ausgabe zu machen.


Anmelden zum Antworten