salve a tutti,
mi sono appena registrato e la mia intenzione è quella di imparare sempre più cose sul mondo della programmazione... e ho subito visto di buon occhio questo forum ;D
ho aperto questo topic perchè in questo momento sto esercitandomi un pò con il c++ (senza oggetti come ci è stato proposto all'università...) e venendo dal c (non mi definisco assolutamente un esperto per farvi capire sono arrivato ai puntatori e a qualcosa sui dati strutturati) sono un pò confuso sulle nuove funzioni d usare. l'esercizio che stavo svolgendo chiede di creare una matrice NxN leggendola da tastiera per poi creare una funzione ricorsiva che restituisca 1 se ci sono elementi nulli nella diagonale principale della matrice; 0 altrimenti. credo di aver impostato bene il problema (o almeno lo spero) ma chiaramente ci sono errori in codeblocks che non riesco a decifrare e, nonostante abbia riletto il codice più volte, non sono capace di trovare gli errori:
codice:
#include <iostream>
int diagonale_nulla (int A, int n);
using namespace std;
int main ()
{
// dichiarazione e lettura matrice
cout << "inserire grandezza matrice NxN" << endl << "N=?" << endl;
int n;
cin >> n;
int A[n][n];
int i, j;
cout << "inserire elementi matrice NxN" << endl;
for (i=0; i==n-1; i++)
{
for (j=0; j==n-1; j++)
{
cin >> A[i][j];
}
}
// verifica elementi nulli in diagonale principale e stampa del risultato
if (diagonale_nulla (A, n)==0)
then
{
cout << "NON CI SONO elementi nulli nella diagonale principale della tua matrice" << endl;
}
else
{
cout << "CI SONO elementi nulli nella diagonale principale della tua matrice" << endl;
}
// stampa diagonale tua per verifica
cout << "la diagonale messa e'" << endl;
for (i=0; i==n-1; i++)
{
for (j=0; j==n-1; j++)
{
cout << A[i][j];
}
cout << endl;
}
return 0;
}
// funzione ricorsiva usata nel main
int diagonale_nulla (int A, int n)
{
if (n>=0)
then
{
if (A[n][n]==0)
then
{
return 1;
}
else
{
diagonale_nulla (A, n-1);
}
else
{
return 0;
}
}
}
mi piacerebbe ricevere se possibile un aiuto. grazie mille a tutti!
PS: al di là dell'università che ha una struttura "tradizionale" degli argomenti trattati mi consigliate di studiare per bene il c o c++? non sono il tipo che chiede le differenze perchè su internet si trova ovviamente la risposta a questa domanda ma vorrei piuttosto un consiglio perchè mi ritrovo adesso sapendo un pò di c studiato "solamente" per passare e comprendere meglio il c++ (di cui non trattiamo gli "oggetti" durante il corso).
spero di non aver chiesto troppo e soprattutto di non aver infranto limiti del regolamento. mi scuso per l'eventualità.