+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Malfunzionamento programma con matrice

  1. #1
    marek42 non è in linea Novello
    Post
    6

    Post Malfunzionamento programma con matrice

    salve sono nuovo nel mondo della programmazione, sto avendo probelmi con questo programmino in c++ che dovrebbe creare una matrice, impostare la diagonale principale con valori di 0 e sommare gli elementi della diagonale principale prima che questi vengano inizializzati a 0.
    sapete dirmi perche non funziona (non sono molto esperto in programmazione) grazie
    ecco il programma:

    codice:
    #include <iostream>
    #include <iomanip>
    using namespace std;
    
    int dim_riga;
    int dim_colonna;
    int x; //numero massimo di righe
    int y; //nemro massimo di colonne
    int v; //valore che l'utente immette ogni volta
    int somma = 0;
    
    int main() {
    
    //creiamo un ciclo do while per evitare che l utente inserisca una dimensione <0 o >10
    	do
    	{
    		cout <<"inserire il numero di colonne e righe compreso tra 1 e 10" <<endl;
    		cin >> x;
    	}
    	while (x<1 or x>10);
    
    	y = x;
    	dim_riga = dim_colonna = 0;
    
    
    //dichiarazione della matrice
    	int MATRICE [dim_riga] [dim_colonna];
    
    
    //carichiamo la matrice con valori immessi dall'utente
    	for (dim_riga = 0; dim_riga < x; dim_riga++)
    	{
    		for (dim_colonna = 0; dim_colonna < x; dim_colonna++)
    		{
    			cout <<"inserisci un valore da asseganre alla riga: " <<dim_riga <<" e alla colonna: " <<dim_colonna <<" ";
    			cin >> v;
    			MATRICE [dim_riga] [dim_colonna] = v;
    		}
    	}
    
    cout <<" " <<endl;
    
    
    //leggiamo i dati della matrice e stampiamoli
    cout<<"la tua matrice e': " <<endl;
    	for (dim_riga = 0; dim_riga < x; dim_riga++)
    		{
    			for (dim_colonna = 0; dim_colonna < y; dim_colonna++)
    			{
    				cout <<" " <<MATRICE[dim_riga][dim_colonna];
    			}
    			cout <<endl;
    		}
    
    cout <<" " <<endl;
    
    //sommaimo i nuemri della diagonale principale
    	for (dim_riga = 0; dim_riga < x; dim_riga++)
    	{
    		somma = somma + MATRICE[dim_riga][dim_riga];
    	}
    	cout <<"la somma degli elementi della diagonale principale e': " <<somma <<endl;
    
    cout <<" " <<endl;
    
    //facciamo in modo che la diagonale principale sia 0
    for (dim_riga = 0; dim_riga < x; dim_riga++)
    		MATRICE [dim_riga] [dim_riga] = 0;
    
    
    //leggiamo i dati della nuova matrice e stampiamoli
    cout<<"la matrice con diagonale principale = 0 e': " <<endl;
    	for (dim_riga = 0; dim_riga < x; dim_riga++)
    		{
    			for (dim_colonna = 0; dim_colonna < y; dim_colonna++)
    			{
    				cout <<" " <<MATRICE[dim_riga][dim_colonna];
    			}
    			cout <<endl;
    		}
    
    }
    Ultima modifica di marek42; 21-12-2017 13:09  Motivo: risolto

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,158
    Blogs
    5
    Questa linea

    int MATRICE [dim_riga] [dim_colonna];

    è sbagliata, devi usare x e y
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #3
    marek42 non è in linea Novello
    Post
    6
    AntonioG grazie per la risposta, solo quella riga devo cambiare poi funziona tutto il resto ?!
    Ok ho provato e ora funziona tutto grazie mille per la risposta

+ Rispondi al Thread

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi