|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2002
Messaggi: 393
|
[C++]Ricorsione su matrice
Salve a tutti...
per l'uni ho scritto un programma di ricorsione su matrice... il codice è questo Codice:
#include <iostream>
using namespace std;
const int L=3;
bool unitaria(int mat[][L],int i,int j,int N){
if(i==N){
return true;
}
else{
if(j<N){
if(((i==j)&&(mat[i][j]!=1))||(i!=j)&&(mat[i][j]!=0)){
return false;
}
unitaria(mat,i,j+1,N);}
else{
unitaria(mat,i+1,0,N);
}
}
}
int main(){
int index,index1;
index=0;
index1=0;
int matrice[L][L];
for(int i=0;i<L;i++){
for(int j=0;j<L;j++){
cout<<"Valore ["<<i<<"]["<<j<<"]"<<endl;
cin>>matrice[i][j];
}
}
for(int i=0;i<L;i++){
for(int j=0;j<L;j++){
cout<<matrice[i][j]<<" ";
}
cout<<endl;
}
cout<<"Risultato della funzione: "<<unitaria(matrice,index,index1,L)<<endl;
system("pause");
}
Ora il problema è questo.. Lo stesso programma, con gli stessi valori compilato da codeblocks mi ritorna sempre false alla funzione(anche con valori con cui dovrebbe tornare true), mentre con visual c++ express funziona correttamente. Sto da una giornata a cercare di capire il perchè ma nn riesco a venirne a capo. Grazie a coloro che mi aiuteranno. Ciao |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Se la ripensi un attimo la puoi migliorare: fai lavorare gli indici separatamente e cerca di capire quando incrementarli e quando non incrementarli, il resto è solo un test di eguaglianza + chiamata ricorsiva.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Sep 2002
Messaggi: 393
|
Quote:
Rimane solo il problema tra codeblock e vsual c++. Ciao |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
Ma chi c'avete come prof, topo Gigio? ![]() Codice:
bool unitaria(int mat[][L],int i,int j,int N){
if(i==N){
return true;
}
else{
if(j<N){
if(((i==j)&&(mat[i][j]!=1))||(i!=j)&&(mat[i][j]!=0)){
return false;
}
unitaria(mat,i,j+1,N);}
else{
unitaria(mat,i+1,0,N);
}
}
}
A questo punto mi meraviglio di come possa funzionare su Visual C++... sarà magico.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2002
Messaggi: 393
|
per il
Codice:
return Ora il codice funziona sia su codeblock che su visual c++. Non so però perchè prima su visual c++ funzionava ugualmente... Ora devo passare solo a migliorare la funzione... Ciao e grazie... |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Capita... buono studio.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:10.





















