Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    1

    matrici in c++ con le funzioni

    ho scritto il seguente programma che riceve in imput una matrice e la stampa,usando due funzioni void

    #include<iostream>
    #include<cstdlib>
    using namespace std;

    void memomatrice(int *a,int n,int m);
    void outmatrice (int *a,int n,int m);

    int main()
    {int n,m;
    cout<<"\n inserisci il numero di righe ";cin>>n;
    cout<<"\n inserisci il numero di colonne ";cin>>m;
    int A[n][m];
    cout<<"\n inserisci la matrice delle stazioni\n";
    memomatrice(A,n,m);
    cout<<"\nstampo\n";
    outmatrice(A,n,m);
    system("PAUSE");
    return 0;}

    void memomatrice(int *a,int n,int m)
    {int i,j;
    for(i=1;i<=n;i++)
    {for(j=1;j<=m;j++)
    {cout<<"M["<<i<<"]["<<j<<"]=";
    cin>>a[i];}}
    return;}

    void outmatrice(int *a,int n,int m)
    {int i,j;
    for(i=1;i<=n;i++)
    {for(j=1;j<=m;j++)
    cout<<"M["<<i<<"]["<<j<<"]="<<a[i]<<'…
    return;}


    il simpaticone mi dà questo errore

    14. cannot convert `int (*)[((unsigned int)((int)m))]' to `int*' for argument `1' to `void memomatrice(int*, int, int)'

    che non so assolutamente cosa voglia dire....se però tolgo le funzioni e metto tutto nel main funziona perfettamente...purtroppo ho bisogno delle funzioni perchè in teoria devo creare 3 diverse matrici e mi sembra inutile scrivere i procedimenti 3 volte!!!

    grazie a tutti per l'aiuto
    benedetta

  2. #2
    A è una matrice bidimensionale, non puoi passarla semplicemente come un puntatore. Per passare matrici multidimensionali è necessario specificarle come tali nella dichiarazione della funzione, specificando tutti gli indici tranne l'ultimo (che è opzionale).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,301

    Moderazione

    Invito l'autore a prendere visione del Regolamento interno, in particolare alla sezione del posting del codice con l'uso degli appositi tag CODE. Il codice, inoltre, deve essere opportunamente indentato. Il tuo non lo è, quindi è inutile qualunque tipo di aggiustamento da parte mia.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.