|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2008
Città: italia
Messaggi: 80
|
correzione programma in C
il codice viene eseguito però non stampa nessun valore, dove è l'errore??
secondo me quel return va cambiato oppure manca qualche inizializzazione di qualche variabile.puoi dare una controllata??? Codice:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
/*
VARIABILI GLOBALI:
n
nChr = numero di permutazioni alcolate (inizialmente 0)
Chr = permutazione
Chr1 = permutazione inversa (Chr1[i] = n equivale ad elemento di permutazione non definito
(se Chr[i]=j, allora Chr1[i]=j)
Succ = risposta della procedura genTPerm (inizialmente 1)
*/
int Chr[100]; /* vettore soluzione (permutazione) */
int Chr1[100]; /* soluzione inversa */
int nChr=0; /* numero soluzioni costruite dalla procedura esaustiva */
int Succ=1; /* flag che indica il successo della procedura esaustiva */
int n; /* numero vertici digrafi */
/* procedura di inizializzazione dei vettori soluzione (Chr[] e Chr1[]) */
void initChr()
{
int i=0;
for(i=0;i<n;i++)
{Chr[i]=n;
Chr1[i]=n;
}
}
/* procedura di stampa di Chr[] */
void stampaVett()
{
int i=0;
for(i=0;i<n;i++)
printf ("%d ",Chr[i]);
printf("\n");
}
/* procedura esaustiva di calcolo soluzioni */
void genTPerm(int k)
{
int i=0;
if(k>(n-1))
{
stampaVett();
/* verifica se la soluzione trovata è un ciclo: se si succ=1 e termina genTPerm */
nChr++;
if(nChr>n)
{
Succ=0;
return ;
}
}
else
for(i=0;i<n;i++)
{if(Chr1[i]==n)
{Chr[k]=i;
Chr1[i]=k;
genTPerm(k+1);
Chr1[i]=n;
Chr[k]=n;
}
}
}
/* programma principale */
int main(void)
{
int i=0, k=0;
/* inizializza variabili, vettori e strutture dati */
nChr = 0;
initChr(); /* procedura che inizializza Chr e Chr1 */
genTPerm(6); /* procedura esaustiva per il calcolo di soluzioni */
}
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Dec 2008
Città: italia
Messaggi: 80
|
correzione programma in C
avevo dimenticato di inizializzare n, però per n=5 il programma mi stampa 5 5 5 5 5, non mi sembra normale
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Dec 2008
Città: italia
Messaggi: 80
|
correzione programma in C
come faccio a far stampare la permutazione correttamente??attendo un vostro aiuto.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:09.


















