[C++] Problema con dichiarazione e richiamo funzione

di il
2 risposte

[C++] Problema con dichiarazione e richiamo funzione

Salve a tutti, ho un problema con un programma in C++.
devo inserire una funzione e richiamarla nel main principale ma non mi da come risultato i valori giusti.
potete dare un controllo al codice e individuare il problema? sto sbattendo la capoccia da 3 ore!
 /*
Si progetti e si implementi un algoritmo che preso in input un numero
intero 2<n<150:

* 1. acquisisca da standard input gli elementi di un vettore b-dimensionale
A matrice di dimensioni n*n
* 2. verifichi che sulla diagonale principale di A non ci siano elementi
nulli
* 3. invochi una procedura che fornisca su standard output tutte le righe
* dispari di A. 
*/


#include <iostream>
using namespace std;

int dispari () {			//DICHIARAZIONE FUNZIONE PER LE RIGHE DISPARI DELLA MATRICE
	int n;
	int A[n][n];
	for (int i=0; i<n; i++) {
			cout<<endl;
			for (int j=0; j<n; j++) {
			cout.width(5);
			int A[i][j];
			cout<<A[i][j];
			}
		i++;
		}
	return A[n][n];
}
int main() {
	int n;
	cout<<"Inserisci un numero interno N compreso tra 3 e 149: ";
	cin>>n;			//INSERIMENTO VALORE N
	if (n<=2 || n>=150) {			//CONTROLLO SULL'INSERIMENTO DI N
		cout<<"\nValore inserito non corretto."<<endl;
	}
	else if (n>2 && n<150) {
		int A[n][n];				//DICHIARAZIONE ARRAY/MATRICE BI-DIMENSIONALE
		for (int i=0; i<n; i++) {			//CICLO INSERIMENTO IN MATRICE
			for (int j=0; j<n; j++) {		//CICLO INSERIMENTO IN MATRICE
			cout<<"\nInserisci elemento ("<<i<<","<<j<<"): ";
			cin>>A[i][j];					//INSERIMENTO
			}
		}
		cout<<"\nMatrice: "<<endl;
		for (int i=0; i<n;i++) {			//CICLO STAMPA MATRICE A VIDEO
			cout<<endl;
			for (int j=0;j<n;j++) {			//CICLO STAMPA MATRICE A VIDEO
			cout.width(5);					//IDENTAZIONE TABELLA A VIDEO
			cout<<A[i][j];					//STAMPA A VIDEO
			}
		}
		int cont=0;							//INIZIALIZZO A ZERO LA VARIABILE CONTATORE
		for (int i=0; i<n; i++) {			//CICLO CONTROLLO SULLA DIAGONALE PRINCIPALE
				if (A[i][i]==0) {			//SE C'È VALORE 0 INCREMENTA LA VARIABILE
					cont++;
				}
		}
		cout<<"\n\nCi sono "<<cont<<" elementi nulli nella diagonale principale."<<endl;
		cout<<"\n\nRighe dispari della Matrice: "<<endl;
		cout<<dispari();					//RICHIAMO LA FUNZIONE PER LE RIGHE DISPARI
	}	//PARENTESI ELSE IF
	cin.get();
	return 0;
} 

2 Risposte

  • Re: [C++] Problema con dichiarazione e richiamo funzione

    Quanto vale n nella funzione dispari?
     int n;
       int A[n][n];
    Cosa ritorna sto return quì?
    return A[n][n];
    Sei sicuro che A[n][n] esista?
    sapendo come sono memorizzati i dati in un array saprai che gli indici vano da 0 a n - 1 quindi credo che ti ho già dato la risposta.
  • Re: [C++] Problema con dichiarazione e richiamo funzione

    3) invochi una procedura che fornisca su standard output tutte le righe
    dispari di A;
    quando devo costrire la funzione che prende la matrice , A[n][n] è la matrice originale del main , e che mi stampi le righe dispari. Solo ke non riesco ad implementare la funzione e richiarma nel main principale o meglio la richiama ma nn la esegue correttamente.
Devi accedere o registrarti per scrivere nel forum
2 risposte