Εμφάνιση 1-9 από 9
  1. #1
    Ειχα μια ασκηση που με συγκεκριμενο τροπο σου ελεγε να επιλυσεις το εξης προβλημα και το οποιο παραθετω σε κωδικα το οποιο δουλευει

    Κώδικας:
    #include <iostream>
    using namespace std;
    
    template<typename T, int N> void printArray(T (&array)[N]){
        
    
        
        
    
        cout<<"The array is "<<N<<" size"<<endl;
        cout<<"The entries of the array are: "<<endl;
        for(int i=0; i<N-1; i++){
    
            
            cout<<array[i]<<endl;
        }
    }
    
    
    int main(){
    
    
    
    int b[]= {1, 8, 6, 8, 9, 23, 11, 78, 99, 1};
    
    printArray(b);
    return 0;
    
    }
    Τωρα ομως πρεπει να κανω το ιδιο θα δυο διαστασεων πινακα nxm

    Πρεπει να ακολουθει την λογικη:

    template<typename T, int N> function_name(T array[N][N]){} (αν ηταν τετραγωνικος.)

    Εχω κολλησει σε αυτο. Παραθετω λιγο ανουσιο κωδικα απλως για να γλυτωσει αν θελει καποιος να βοηθησει πληκτρολογηση

    Κώδικας:
    #include <iostream>
    using namespace std;
    
    template<typename T, int N> void printArray(T array[N][M]){
        
    
        
        
    
        cout<<"The array has "<<N<<"x"<<M<<" size"<<endl;
        cout<<"The entries of the array are: "<<endl;
        for(int i=0; i<N-1; i++){
            for(int j=0;j<M-1; j++){
    
            
                cout<<array[i][j]<<endl;
            }
        }
    }
    
    
    int main(){}

  2. #2
    Εγγραφή
    13-11-2011
    Περιοχή
    Χολαργός
    Ηλικία
    37
    Μηνύματα
    1.451
    Downloads
    1
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    24000 / 4500
    ISP
    Wind
    DSLAM
    Wind - ΧΟΛΑΡΓΟΣ
    Path Level
    Interleaved
    Πρακτικά σχεδόν το έχεις κάνει!
    Απλά πρέπει να πάρεις και δεύτερη παράμετρο τύπου Int στο template ώστε να δουλέψει σωστά το loop σου!

  3. #3
    Κώδικας:
    #include <iostream>
    using namespace std;
    
    template<typename T, int N, int M> void printArray(T array[N][M]){
    	
    
    	
    	
    
    	cout<<"The array has "<<N<<"x"<<M<<" size"<<endl;
    	cout<<"The entries of the array are: "<<endl;
    	for(int i=0; i<N-1; i++){
    		for(int j=0;j<M-1; j++){
    
    		
    			cout<<array[i][j]<<endl;
    		}
    	}
    }
    
    
    int main(){
    
    int a=4;
    int b=3;
    int c[a][b]= {{1, 5, 6}, {8, 9, 23}, {56, 78, 99},{2,3,4}};
    
    printArray(c);
    return 0;
    
    }
    και ομως δεν βρισκω τον τροπο να την καλεσω ωστε να μην μου βγαζει λαθη ο compiler .

    - - - Updated - - -

    Δικο μου λαθος δεν συνταξα-αναλυσα το προβλημα καλα , κατι ειναι λαθος γιατι δεν βρισκω τροπο να την καλεσω χωρις λαθη.

  4. #4
    Εγγραφή
    13-11-2011
    Περιοχή
    Χολαργός
    Ηλικία
    37
    Μηνύματα
    1.451
    Downloads
    1
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    24000 / 4500
    ISP
    Wind
    DSLAM
    Wind - ΧΟΛΑΡΓΟΣ
    Path Level
    Interleaved
    Όταν καλείς την printArray πρέπει να την καλέσεις με την σωστή σύνταξη για template!
    Κώδικας:
    printArray<...>(c);//Άλλαξε τις τελίτσες με τα σωστά ορίσματα!

  5. #5
    Δεν το βρισκω πως πρεπει να την καλεσω?

  6. #6
    Εγγραφή
    13-11-2011
    Περιοχή
    Χολαργός
    Ηλικία
    37
    Μηνύματα
    1.451
    Downloads
    1
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    24000 / 4500
    ISP
    Wind
    DSLAM
    Wind - ΧΟΛΑΡΓΟΣ
    Path Level
    Interleaved
    Κώδικας:
    printArray<int, 4, 3>(c);

  7. #7
    Δεν δουλευει, βγαζει error στο compiler. Κατι φταιει ισως επανω και οχι στην main ...

  8. #8
    Εγγραφή
    13-11-2011
    Περιοχή
    Χολαργός
    Ηλικία
    37
    Μηνύματα
    1.451
    Downloads
    1
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    24000 / 4500
    ISP
    Wind
    DSLAM
    Wind - ΧΟΛΑΡΓΟΣ
    Path Level
    Interleaved
    Παράθεση Αρχικό μήνυμα από zaranero Εμφάνιση μηνυμάτων
    Δεν δουλευει, βγαζει error στο compiler. Κατι φταιει ισως επανω και οχι στην main ...
    Τι error βγάζει;

    - - - Updated - - -

    Άλλαξε το
    Κώδικας:
    int a=4;
    int b=3;
    int c[a][b]= {{1, 5, 6}, {8, 9, 23}, {56, 78, 99},{2,3,4}};
    σε
    Κώδικας:
    int c[4][3]= {{1, 5, 6}, {8, 9, 23}, {56, 78, 99},{2,3,4}};

  9. #9
    Ευχαριστω

    Δουλεψε

Παρόμοια Θέματα

  1. Μηνύματα: 228
    Τελευταίο Μήνυμα: 14-09-16, 15:13

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας