Funktion ausgeben



  • #include <iostream>
    #include <ctime>
    using namespace std;
    const int COLUMN = 5;
    const int MAXROW = 5;
    
    void showMat(double a[][COLUMN], int r) {
    	for (int i = 0; i < 5; i++) {
    		for (int j = 0; j < r; j++) {
    			cout << a[i][j] << "\t" << endl;
    		}
    		cout << endl;
    	}
    }
    
    int main() {
    	setlocale(LC_ALL, "German");
    	srand(time(0));
    	int r;
    	do {
    		cout << "Bitte geben sie die Anzahl der Zeilen der Matrizen ein (zwischen 1 und 5): " << endl;
    		cin >> r;
    	} while ((r <= 0) || (r > MAXROW));
    	int m1[MAXROW][COLUMN];
    	int m2[MAXROW][COLUMN];
    
    	for (int i = 0; i < r; i++) {
    		for (int j = 0; j < COLUMN; j++) {
    			int p = rand() % 20;
    			m1[i][j] = p;
    		}
    	}
    
    	for (int i = 0; i < r; i++) {
    		for (int j = 0; j < COLUMN; j++) {
    			int p = rand() % 20;
    			m2[i][j] = p;
    		}
    	}
    	
    	int mSUM[MAXROW][COLUMN];
    	int mDIF[MAXROW][COLUMN];
    	
    	for (int i = 0; i < r; i++) {
    		for (int j = 0; j < COLUMN; j++) {
    			mSUM[i][j] = m1[i][j] + m2[i][j];
    		}
    	}
    
    	for (int i = 0; i < r; i++) {
    		for (int j = 0; j < COLUMN; j++) {
    			mDIF[i][j] = m1[i][j] - m2[i][j];
    		}
    	}
    
    	cout << showMat(m1) << endl;
    
    }
    

    Halliahllo, mal wieder...
    Hier mein "fertiger" Code.
    Ich würde gern meine oben definierte void-Funktion ausgeben, jedoch erlaubt mir VisualStudio das nicht. Habe ich irgendwas vergessen, oder mache ich irgendeinen grundlegenden Fehler?
    Danke im Voraus!



  • @Qualitätsbemme Die Funktion hat einen Namen.

    void ist kein Typ und kann somit auch nicht ausgegeben werden.

    Es reicht, die Funktion aufzurufen (ohne cout davor und endl danach).
    Das steht schon alles in der Funktion.



  • Was meinst du mit "Funktion ausgeben"?

    Du versuchst auch in dem Code gar nicht, eine Funktion auszugeben, sondern du versuchst, sie aufzurufen und ihren Rückgabewert auszugeben. Das ist allerdings eine void-Funktion, d.h., sie hat keinen Rückgabewert, den man ausgeben könnte.

    Letztlich ist mir unklar, was du da überhaupt vorhast. Die Funktion gibt selbst schon während ihrer Ausführung etwas aus, das sagt auch schon der Name showMat, es ist offenbar völlig unnötig, sie etwas zurückgeben zu lassen, was man ausgeben kann.



  • Ich wollte mit der Funktion eine, der späteren zufällig generierten Matrizen ausgeben können. (Aufgabenstellung: Geben Sie alle 4 Matrizen, mit Hilfe der Funktion:

    void showMat(double a[][COLUMN], int r)
    

    aus (r ist die Anzahl der Zeilen, die Matrix a wird verändert und es gibt keinen Rückgabewert).)
    P.S.: Danke, dass ihr beiden mir heute schon zum zweiten Mal helft ^^



  • @Bashar Mein Problem ist, dass wenn ich

    showMat(m1);
    

    VisualStudio mir sagt, dass zu wenig Argumente im Funktionsaufruf seien...



  • @Qualitätsbemme
    Einen Beitrag vorher zeigst du die Funktion mit zwei Parametern und wunderst dich jetzt, dass einer nicht reicht?



  • @Qualitätsbemme sagte in Funktion ausgeben:

    void showMat(double a[][COLUMN], int r) {

    Wieviele Argumente hat denn deine Funktion? 🙂


Anmelden zum Antworten