Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [c++] array

  1. #1
    Utente di HTML.it L'avatar di mica81
    Registrato dal
    Nov 2003
    Messaggi
    87

    [c++] array

    buondi' a tutti!
    sempre per esercizio mi son fatto sto programma:

    #include<iostream.h>
    #include<stdlib.h>

    int main()
    {
    int r, c, i, j;

    do {

    cout<<"inserisci il numero di righe\n";
    cin>>r;
    cout<<"inserisci il numero di colonne\n";
    cin>>c;

    int m[r][c];


    if (r != c) {
    cout<<"La matrice non e' quadrata!\n";
    system("pause");
    }


    else

    cout<<"inserisci gli elementi della matrice\n";

    for(i=0; i<r; i++)
    for(j=0; j<c; j++)
    cin>> m[i][j];

    for(i=0; i<r; i++){
    for(j=0; j<c; j++)
    cout<<m[i][j]<<'\t';
    cout<<'\n';
    }
    }while (r != c);

    system("pause");
    return 0;
    }
    come vedete, se la matrice non è quadrata (una matrice si dice quadrata quando il numero delle righe è uguale al numero delle colonne) il programma stampa a video il messaggio e dovrebbe ritornare al punto in cui chiede di inserire il numero di righe.
    dico dovrebbe poichè in realtà mi si blocca e si chiude solo se lo chiudo io rozzamente con ctrl - f4!
    dove sbaglio? :master:

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    141
    e sbagliato il concetto in se ... ora spiego.

    tu richiedi il n delle colonne e delle righe della matrice che vuoi creare ... giusto???

    questo pero in c++ non si puo fare !!! perche il compilatore quando va a compilare il tuo sorgente vuole sapere gia quante colonne e quante righe di memoria deve occupare .. questo per evitare eventuali errori successivi,perche magari la matrice è troppo grande e non ci sta nella memoria o perche potresti accedere a dati e valori che stanno fuori dalla matrice stessa e questo non va bene.

    qnd i modi per dichiarare una matrice o cmq un array sono:

    const int A=4;
    const int B=5;
    int matrice[A][B];

    oppure

    int matrice[4][5];

    oppure

    int matrice[][]={...specifichi tu i valori...};


    OPPURE USI le matrici dinamiche .... ma di queste non so molto!!!!!!

  3. #3
    Oltre al discorso perfettamente corretto di baru che ti comporta a creare array dicamici.

    Dovrebbe andar bene così:


    Codice PHP:
    #include<iostream.h> 
    #include<stdlib.h> 

    int main() 

    int rcij

    do { 

    cout<<"inserisci il numero di righe\n"
    cin>>r
    cout<<"inserisci il numero di colonne\n"
    cin>>c


    int *= new int[r][c]; 


    if (
    != c) { 
    cout<<"La matrice non e' quadrata!\n"
    system("pause"); 


    ... 

    Poi un altro errore è che nn hai messo le graffe nell'else!! Se nn ci son graffe considera argomento dell'else solo la 1° riga successiva!!
    Così invece di tornare all'inizio esegue i comandi successivi!!



    Spero di essermi spiegato

  4. #4
    Utente di HTML.it L'avatar di mica81
    Registrato dal
    Nov 2003
    Messaggi
    87
    ok grazie, adesso ho capito.
    comunque per quanto riguarda la parentesi sull'else ho provato a metterla ma il programma si piantava lo stesso.
    ok bene alla prox!

  5. #5
    Volevo solo aggiungere una nota, in C99 (non c++) è consentito l'uso
    di array a dimensione variabile, per cui questo codice è compilato correttamente.

    codice:
    #include <stdio.h>
    
    int main()
    {
      int i, j, n, m;
      
      scanf("%d", &n);
      scanf("%d", &m);
      
      int a[n][m];
      
      for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
        {
          printf("[%d][%d]: ", i, j);
          scanf("%d", &a[i][j]);
        }
      
      for (i = 0; i < n; i++)
      {
        for (j = 0; j < m; j++)
          printf("%d ", a[i][j]);
          
        putchar('\n');
      }
      
      return 0;
    }
    Questa funzionalità verrà proposta in futuro per il nuovo standard ansi c++, ma ancora non si sa se verrà effettivamente integrata.

    C99 è lo standard ANSI C introdotto nel 1999, ed è il primo standard C che permette di utilizzare anche i commenti del c++ (//)

    inoltre aggiunge anche altre cose
    http://www.informit.com/isapi/guide~...de/content.asp
    http://www.mit.edu/iap/2004/c/week2_day4/notes
    http://en.wikipedia.org/wiki/C_programming_language#C99

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 © 2025 vBulletin Solutions, Inc. All rights reserved.