Matix eingabe

• Ich habe diesen Code gefunden um eine determinante zu berechnen,
wie kann ich hier eine Matrix abfrage machen, so dass der Code
Den anwender die Matrix eingeben lässt
und nicht im code das verändert werden muss

// determinante.cpp : Diese Datei enthält die Funktion "main". Hier beginnt und endet die Ausführung des Programms.
//

#include "pch.h"
#include <iostream>
#include <cmath>
#include <stdio.h>
#include <stdlib.h>

// C++ program to find Deteminant of a matrix

using namespace std;

// Dimension of input square matrix
#define N 5

// Function to get cofactor of mat[p][q] in temp[][]. n is current
// dimension of mat[][]
void getCofactor(int mat[N][N], int temp[N][N], int p, int q, int n)
{
int i = 0, j = 0;

``````// Looping for each element of the matrix
for (int row = 0; row < n; row++)
{
for (int col = 0; col < n; col++)
{
//  Copying into temporary matrix only those element
//  which are not in given row and column
if (row != p && col != q)
{
temp[i][j++] = mat[row][col];

// Row is filled, so increase row index and
// reset col index
if (j == n - 1)
{
j = 0;
i++;
}
}
}
}
``````

}

/* Recursive function for finding determinant of matrix.
n is current dimension of mat[][]. */
int determinantOfMatrix(int mat[N][N], int n)
{
int D = 0; // Initialize result

``````//  Base case : if matrix contains single element
if (n == 1)
return mat[0][0];

int temp[N][N]; // To store cofactors

int sign = 1;  // To store sign multiplier

// Iterate for each element of first row
for (int f = 0; f < n; f++)
{
// Getting Cofactor of mat[0][f]
getCofactor(mat, temp, 0, f, n);
D += sign * mat[0][f] * determinantOfMatrix(temp, n - 1);

// terms are to be added with alternate sign
sign = -sign;
}

return D;
``````

}

/* function for displaying the matrix */
void display(int mat[N][N], int row, int col)
{
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
printf(" %d", mat[i][j]);
printf("n");
}
}

// Driver program to test above functions
int main()
{
/* int mat[N][N] = {{6, 1, 1},
{4, -2, 5},
{2, 8, 7}}; */

``````int mat[N][N] = { {4, 8, 3, 4, 1},
{5, 4, 1, 5, 2},
{1, 3, 2, 5, 4},
{3, 4, 5, 6, 3},
{3, 4, 5, 6, 5}
};

printf("Determinant of the matrix is : %d",
determinantOfMatrix(mat, N));

return 0;``````

• // C++ program to find Deteminant of a matrix

C?

Matrix abfrage

Was soll eine Matrixabfrage sein? Du musst die N*N Werte einlesen und zuweisen.

• @manni66 ja genau
Also einfach das der benutzer sagt er will eine 55/44/3*3 (und so weiter) matrix und dann soll er alle werte eingeben und danach wird die matrix wieder ausgegeben.

• Zwei verschachtelte Schleifen für Zeilen/Spalten und darin dann die Eingabe.

Da die Ausgabe auch so aufgebaut ist, kannst du damit anfangen.

• #include "pch.h"
#include <iostream>

int main()
{
void matrix(float m_koeffizent[i][j], float* m_konstante, int m_groesse)
{
int i, j;

``````	printf("\nGeben Sie nun die Koeefizientenmatrix A an.");
for (i = 0; i < m_groesse; i++)
{
printf("\nZeile eingeben bitte", i + 1);
for (j = 0; j < m_groesse; j++)
scanf_s("%f", &m_koeffizent[i][j]);
}

printf("\nGeben Sie nun den konstanten Vektor b an.");
for (i = 0; i < m_groesse; i++)
{
printf("\nZeile eingeben bitte", i + 1);
scanf_s("%f", &m_konstante[i]);
}
return;
}

int i, j;
for (i = 0; i < m_groesse; i++)
{
printf("\nZeile ", i + 1);
for (j = 0; j < m_groesse; j++)
printf("%f", &m_koeffizent[i][j]);
}

printf("\nkonstanten Vektor b ");
for (i = 0; i < m_groesse; i++)
{
printf("\nZeile ", i + 1);
printf("%f", &m_konstante[i]);
}
return;
``````

}

Das ist momentan mein versuch

• Funktionen werden außerhalb jeder anderen Funktion definiert.

Die Sache mit dem N solltest du dir auch mal ansehen.

Wo kommt der Konstantenvektor auf einmal her?

• #include "pch.h"
#include <iostream>
#include <cmath>

int main()
{
int ig, iw[5][5];

``````    printf("Geben Sie die Groesse der Matrix an \n");
scanf_s("%i", &ig);
printf("Die Groesse ist %i", ig);

int i, j;

printf("\nGeben Sie nun die Koeefizientenmatrix A an.");
for (i = 0; i < ig; i++)
{
printf("\nZeile eingeben bitte", i + 1);
for (j = 0; j < ig; j++)
scanf_s("%i", &iw [i][j]);
}//for scan
for (i = 0; i < ig; i++)
{
printf("\n Der Wert ist", i + 1);
for (j = 0; j < ig; j++)
printf("%i", &iw[i][j]);
}//for print
``````

}//main

leider gibrt er mir sehr komische werte aus und nicht meine matrix

• @schnell_hilfe sagte in Matix eingabe:

printf("\nZeile eingeben bitte", i + 1);

Warnungen einschalten?

• @schnell_hilfe Wie wäre es mit Leerzeichen oder Kommas zwischen den Werten.

• @schnell_hilfe Ach ja, pack bitte deinen Code zwischen Codetags.
Code mit der Maus markieren und auf das </> Symbol Klicken.

Rechts in der Vorschau kannst du das Ergebnis sehen.

• @schnell_hilfe egal wie du es lernst, oder von wem, du lernst quatsch. wegwerfen (buch) oder verprügeln (tutor).