Πράξεις πινάκων με pointers

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
ggeo1
Δημοσιεύσεις: 16
Εγγραφή: 08 Νοέμ 2006 18:24

Πράξεις πινάκων με pointers

Δημοσίευση από ggeo1 » 26 Φεβ 2011 19:37

Καλησπέρα,
έχω φτιάξει το παρακάτω πρόγραμμα,το οποίο προς το παρόν θέλω να μου υπολογίζει την ορίζουσα ενός πίνακα( μετά θα βάλω και πράξεις κτλ).
Καταρχήν,θέλω να το κάνω με pointers!
Τα προβλήματά μου είναι δυο.

1) Μου πετάει στην αρχή "matrix::rows cannot appear in a constant expression"
"new cannot appear in a constant expression"
"error making mat static"
"error: invalid in-class initialization of static data member of non-integral type ‘int**’ "

2) Δε μου αναγνωρίζει τα mat, i, j στις συναρτήσεις που έχω κάτω από το main.

Γενικά,έχω μια τάση να τα μπερδεύω τα πράματα,οπότε μη με παρεξηγείτε!

Κώδικας: Επιλογή όλων

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>

using namespace std;

class matrix &#123;
private&#58;
int rows,columns;
int **mat=new int *&#91;rows&#93;;
public&#58;
matrix &#40;&#41; &#123;&#125;;
void allocate&#40;&#41;;
void getdata&#40;&#41; &#123;
cout <<"Enter number of rows &#58;"<<endl;
cin >>rows;
cout <<"Enter number of columns &#58; "<<endl;
cin >> columns;

&#125;
void fill&#40;&#41;;
double determinant&#40;&#41;;
void showdata&#40;&#41;&#123;

&#125;

&#125;;





int main&#40;&#41;
&#123;
matrix a;

a.getdata&#40;&#41;;
a.allocate&#40;&#41;;
a.fill&#40;&#41;;
a.determinant&#40;&#41;;

    return 0;
&#125;

//storage matrix elements for each row as there are columns
void matrix &#58;&#58;allocate&#40;&#41; &#123;

for &#40;int i=0;i<rows;i++&#41; &#123;
mat&#91;i&#93;=new int &#91;columns&#93;;


&#125;
&#125;
//fills the matrix
void matrix &#58;&#58;fill&#40;&#41;&#123;

    for&#40;int i=0;i<rows;i++&#41; &#123;
        for&#40;int j=0;j<columns;j++&#41;&#123;
        cout <<"Enter the elements in a line separated by whitespace &#58;"<<endl;
        cin >>mat&#91;i&#93;&#91;j&#93;;
        &#125;
    &#125;

&#125;
//calculate the determinant
double matrix &#58;&#58; determinant &#40;&#41;&#123;
    double det;
    det = mat&#91;i&#93;&#91;j&#93;*mat&#91;i+1&#93;&#91;j+1&#93; - mat&#91;i&#93;&#91;j+1&#93;*mat&#91;i+1&#93;&#91;j&#93;;
    cout <<"The determinant of matrix is &#58;"<<det<<endl;

&#125;

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες