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).