Matrix Problem
-
hallo,
das Programm sieht wie folgendes aus(siehe unten).habe aber ein problem,ich habe die FOR schleife bis n-1( bei der funktion void liesMat() ) ,d.h.normalerweise bei n-1 muss es die Schleife verlassen.
hier läuft aber die For schleife ohne ende
woran liegt die fehler???
Danke im voraus
///////////////////////////////////////////////////////////////#include<iostream>
#include<math.h>
using namespace std;class Matrix {
private : unsigned int n;
double** komp;public:
void erzeugeMat( unsigned int n);
void loescheMat();
void liesMat();};
void Matrix::erzeugeMat(unsigned int n) {
cout << " Die Dimension n eingeben " << endl;
cin>>n;
int i,j;
double** kopm=new double* [n];
for(int i=0;i<n-1;i++)
komp[i]= new double [n];for(i=0;i<n;i++)
for(j=0;j<n-1;j++){
komp[i][j]=0;}
}void Matrix::loescheMat(){
for(int i=0;i<n-1;i++){
delete []komp[i];}
delete []komp;
}void Matrix::liesMat(){
cout << "Bitte geben Sie die Matrix A " << endl;
int i,j;for (int i=0; i<=n-1; i++)
for (int j=0; j<=n-1; j++) {
cout << "komp." << i << j << " : ";
cin >> komp[i][j];}
}int main(){
unsigned int n;
double**komp;Matrix A;
A.erzeugeMat(n);
A.liesMat();
return 0;
}
-
marshallprank schrieb:
hallo,
das Programm sieht wie folgendes aus(siehe unten).habe aber ein problem,ich habe die FOR schleife bis n-1( bei der funktion void liesMat() ) ,d.h.normalerweise bei n-1 muss es die Schleife verlassen.
hier läuft aber die For schleife ohne ende
woran liegt die fehler???
Danke im voraus/////////////////////////////////////////////////////////////// #include<iostream> #include<math.h> using namespace std; class Matrix { private : unsigned int n; double** komp; public: void erzeugeMat( unsigned int n); void loescheMat(); void liesMat(); }; void Matrix::erzeugeMat(unsigned int n) { cout << " Die Dimension n eingeben " << endl; cin>>n; int i,j; double** kopm=new double* [n]; for(int i=0;i<n-1;i++) komp[i]= new double [n]; for(i=0;i<n;i++) for(j=0;j<n-1;j++){ komp[i][j]=0;} } void Matrix::loescheMat(){ for(int i=0;i<n-1;i++){ delete []komp[i];} delete []komp; } void Matrix::liesMat(){ cout << "Bitte geben Sie die Matrix A " << endl; int i,j; for (int i=0; i<=n-1; i++) for (int j=0; j<=n-1; j++) { cout << "komp." << i << j << " : "; cin >> komp[i][j]; } } int main(){ unsigned int n; double**komp; Matrix A; A.erzeugeMat(n); A.liesMat(); return 0; }
-
sieht immer noch besch... aus. Weiß du wie ein Debugger funktioniert?
-
nein
-
Du musst an einer Stelle des Codes einen Breakpoint setzen und dann das Programm im Debugmodus starten. Wie genau das geht, hängt von deiner Entwicklungsumgebung ab. Beim Visual Studio was glaub ich F9 für die breakpoints und F5 zum debuggen. Dann kannst du das Programm schritt für schritt durchgehen und alle variablen anschauen.
-
Die Verwendung aussagekräftiger Namen hilft gelegentlich. Ich sehe hier viele n, die sich z.T. gegenseitig verdecken.
-