cs_lucky31
Messages postés20Date d'inscriptionvendredi 7 avril 2006StatutMembreDernière intervention 5 avril 2009
-
3 mai 2006 à 23:41
cs_lucky31
Messages postés20Date d'inscriptionvendredi 7 avril 2006StatutMembreDernière intervention 5 avril 2009
-
4 mai 2006 à 23:29
bonsoir, j'ai 1 probleme avec l'execution de mon prg ecrit en c et j'utilise le dev c++
voila mon code source alors si vous pouvez m'aider merci d'avance
#include <stdio.h>
#define N 30
void tp1 ();
void tp2 ();
void tp3 ();
void tp4 ();
main ()
{
//******************************************************************************
int choisir ();
int index (char s);
//******************************************************************************
char sommet [30];
char l2[30];
int l1[N];
int M[N][N];
int r,nb,nbr;
int choix;
char s;
//******************************************************************************
choisir ();
do
{
if (choix==1) tp1 ();
if (choix==2) tp2 ();
if (choix==3) tp3 ();
//if (choix==4) tp4 ();
}
while (choix==5);
}
//******************************************************************************
int choisir ()
{int choix;
printf ("tapez 1 pour effectuer le tp2 \n");
printf ("tapez 2 pour effectuer le tp1 \n");
printf ("tapez 3 pour effectuer le tp3 \n");
printf ("tapez 4 pour effectuer le tp4 \n");
printf (" Donner votre choix ");
scanf ("%s\n",&choix);
return (choix);
}
//******************************************************************************
index (char s)
{
//******************************************************************************
void tp2 ()
{ tp1();
int i,j;
char som1,som2;
int nb;
int nbr;
char sommet[30];
int M[30][30];
printf ("donner le nombre de sommets : ");
scanf ("%d\n",&nb);
printf ("donner le nombre d'arcs : ");
scanf ("%d\n",&nbr);
//initialisation du tableau sommet
for (i=1;i<=nb;i++)
{
sommet[i]= ' ' ;
}
//initialisation de la matrice M
for (i=1;i<=nb;i++)
for (j=1;j<=nb;j++)
M[i][j]=0;
//parcours en profondeur du graphe
for (i=1;i<=nbr;i++)
{
int x,y;
printf ("donner l'extremite initiale de l'arc \n: ");
scanf ("%c",&som1);
printf ("donner l'extremite terminale de l'arc \n: ");
scanf ("%c",&som2);
//x donne l'indice de som1 dans le tableau sommet
x=index(som1);
// meme chose pour y
y=index(som2);
M[x][y]=1;
}
//affichage de la matrice
for (i=1;i<=nb;i++)
{
for (j=1;j<=nb;j++)
printf ("%7d",M[i][j]);
printf ("\n");
}
tp1 ();
}
//******************************************************************************
void tp1 ()
{
int i,j,k,d,nb,M[30][30],l1[30];
char sommet[30],l2[30];
k=0;
//la lecture de la matrice sommet-sommet
for(i=1;i<=nb;i++)
{
for(j=1;j<=nb;j++)
{
scanf( "%d",M[i][j]);
}
}
//la lecture du tableau des sommets
for (i=1;i<=nb;i++)
{
scanf ("%c",sommet[i]);
}
//initialisation de la liste l2
for (i=1;i<=N;i++)
{
l2[i]=' ';
}
//creation de la liste l2
for (i=1;i<=nb;i++)
{
for (j=1;j<=nb;j++)
{
if( M[i][j]==1)
{
printf (" le successeur du sommet : ");
printf ("%c",sommet[i]);
printf (" est : ");
printf ("%c\n",sommet[j]);
k=k+1;
l2[k]=sommet[j];
}
}
}
d=i;
for (j=1;j<=nb;i++)
{
if (M[d][j]!=1)
{
k=k+1;
l2[k]='*';
}
}
//affichage de la liste l2
for(i=1;i<=N;i++)
{
while (l2[i]!=' ' )
{
printf("%c",l2[i]);
printf (" ");
}
}
//initialisation de la liste l1
for(i=1;i<N;i++)
{
l1[i]=0;
}
//creation de la liste l1
i=1;
j=1;
k=0;
a:if(M[i][j]==1)
{
k=k+1;
l1[k]=k;
j=j+1;
while(j<=nb)
{
b:if(M[i][j]==1)
{
k=k+1;
j=j+1;
goto b;
}
else
{
j=j+1;
goto b;
}
}
i=i+1;
j=1;
goto a;
}
else
{
j=j+1;
goto a;
}
int p;
p=k;
for (i=1;i<=N;i++)
{
if(l2[i]=='*')
{
l1[p]=p;
}
}
//affichage de la liste l1
for(i=1;i<=N;i++)
{
while (l1[i]!=0)
{
printf("%d",l1[i]);
printf (" ");
}
}
}
//******************************************************************************
void tp3 ()
{
int i,j,nb,M[30][30];
for (i=1;i<=nb;i++)
{
for (j=1;j<=nb;j++)
{
if ((M[i][j]==1)&&(i!=j))
{
if ((M[j][i]==1)&&(i!=j))
{
printf (" le graphe est symétrique ");
printf ("\n");
}
else printf (" le graphe est antisymetrique ");
}
if ((M[i][j]!=1) && (M[j][i]!=1))
{
printf (" le graphe est complet ");
printf ("\n");
}
else printf("le graphe n'est pas complet");
}
}
Lord_Patoche
Messages postés196Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 1 mai 20093 4 mai 2006 à 00:08
Salut. Y a effectivement quelques erreurs.
Remplaces main ( ) par int main( ) et mets avant l'accolade de fin : return 0;
Toutes tes déclarations placées dans ton main sont locales. cependant ton programme demande ces variables déclarées dans plusieurs fonctions. sors donc ces déclarations et place les dans l'entête de ton prog.
Ces déclarations sont les suivantes :
char sommet [30];
char l2[30];
int l1[N];
int M[N][N];
int r,nb,nbr = 0;
int choix;
char s;
int choisir ();
int index (char s);
Elles doivents être placées juste avant ton int main ( )
Dernier problème en tout cas au niveau des erreurs pour la compilation :
Mets à zéro tes variables lors de leur création.
ex : int r, nb, nbr = 0 comme je l'ai fait ci dessus.
Bon courage.
cs_lucky31
Messages postés20Date d'inscriptionvendredi 7 avril 2006StatutMembreDernière intervention 5 avril 2009 4 mai 2006 à 14:11
salut merci pour ton aide mais il y a tjrs des erreurs qui s'afichent
expected unqualified-id before "return"
expected `,' or `;' before "return"
expected declaration before '}' token
cs_lucky31
Messages postés20Date d'inscriptionvendredi 7 avril 2006StatutMembreDernière intervention 5 avril 2009 4 mai 2006 à 21:10
#include <stdio.h>
#define N 30
void tp1 ();
void tp2 ();
void tp3 ();
void tp4 ();
int choisir ();
int index (char s);
char sommet [30];
char l2[30];
int l1[N];
int M[N][N];
int r,nb,nbr;
int choix;
char s;
int main ()
{
//******************************************************************************
int r, nb, nbr = 0;
choisir ();
do
{
if (choix==1) tp1 ();
if (choix==2) tp2 ();
if (choix==3) tp3 ();
//if (choix==4) tp4 ();
}
while (choix==5);
}
//******************************************************************************
int choisir ()
{int choix;
printf ("tapez 1 pour effectuer le tp2 \n");
printf ("tapez 2 pour effectuer le tp1 \n");
printf ("tapez 3 pour effectuer le tp3 \n");
printf ("tapez 4 pour effectuer le tp4 \n");
printf (" Donner votre choix ");
scanf ("%s\n",&choix);
return (choix);
}
//******************************************************************************
int index (char s)
{
int r=0;
int p;
p=1;
while ((sommet[p]!=s) && (sommet[p]!='*'))
{
p=p+1;
}
if (sommet[p]==s)
{
return(p);
}
else
{
r=r+1;
sommet[r]=s;
return (r);
}
}
//******************************************************************************
void tp2 ()
{ tp1();
int i,j;
char som1,som2;
int nb;
int nbr;
char sommet[30];
int M[30][30];
printf ("donner le nombre de sommets : ");
scanf ("%d\n",&nb);
printf ("donner le nombre d'arcs : ");
scanf ("%d\n",&nbr);
//initialisation du tableau sommet
for (i=1;i<=nb;i++)
{
sommet[i]= ' ' ;
}
//initialisation de la matrice M
for (i=1;i<=nb;i++)
for (j=1;j<=nb;j++)
M[i][j]=0;
//parcours en profondeur du graphe
for (i=1;i<=nbr;i++)
{
int x,y;
printf ("donner l'extremite initiale de l'arc \n: ");
scanf ("%c",&som1);
printf ("donner l'extremite terminale de l'arc \n: ");
scanf ("%c",&som2);
//x donne l'indice de som1 dans le tableau sommet
x=index(som1);
// meme chose pour y
y=index(som2);
M[x][y]=1;
}
//affichage de la matrice
for (i=1;i<=nb;i++)
{
for (j=1;j<=nb;j++)
printf ("%7d",M[i][j]);
printf ("\n");
}
tp1 ();
}
//******************************************************************************
void tp1 ()
{
int i,j,k,d,nb,M[30][30],l1[30];
char sommet[30],l2[30];
k=0;
//la lecture de la matrice sommet-sommet
for(i=1;i<=nb;i++)
{
for(j=1;j<=nb;j++)
{
scanf( "%d",M[i][j]);
}
}
//la lecture du tableau des sommets
for (i=1;i<=nb;i++)
{
scanf ("%c",sommet[i]);
}
//initialisation de la liste l2
for (i=1;i<=N;i++)
{
l2[i]=' ';
}
//creation de la liste l2
for (i=1;i<=nb;i++)
{
for (j=1;j<=nb;j++)
{
if( M[i][j]==1)
{
printf (" le successeur du sommet : ");
printf ("%c",sommet[i]);
printf (" est : ");
printf ("%c\n",sommet[j]);
k=k+1;
l2[k]=sommet[j];
}
}
}
d=i;
for (j=1;j<=nb;i++)
{
if (M[d][j]!=1)
{
k=k+1;
l2[k]='*';
}
}
//affichage de la liste l2
for(i=1;i<=N;i++)
{
while (l2[i]!=' ' )
{
printf("%c",l2[i]);
printf (" ");
}
}
//initialisation de la liste l1
for(i=1;i<N;i++)
{
l1[i]=0;
}
//creation de la liste l1
i=1;
j=1;
k=0;
a:if(M[i][j]==1)
{
k=k+1;
l1[k]=k;
j=j+1;
while(j<=nb)
{
b:if(M[i][j]==1)
{
k=k+1;
j=j+1;
goto b;
}
else
{
j=j+1;
goto b;
}
}
i=i+1;
j=1;
goto a;
}
else
{
j=j+1;
goto a;
}
int p;
p=k;
for (i=1;i<=N;i++)
{
if(l2[i]=='*')
{
l1[p]=p;
}
}
//affichage de la liste l1
for(i=1;i<=N;i++)
{
while (l1[i]!=0)
{
printf("%d",l1[i]);
printf (" ");
}
}
}
//******************************************************************************
void tp3 ()
{
int i,j,nb,M[30][30];
for (i=1;i<=nb;i++)
{
for (j=1;j<=nb;j++)
{
if ((M[i][j]==1)&&(i!=j))
{
if ((M[j][i]==1)&&(i!=j))
{
printf (" le graphe est symétrique ");
printf ("\n");
}
else printf (" le graphe est antisymetrique ");
}
if ((M[i][j]!=1) && (M[j][i]!=1))
{
printf (" le graphe est complet ");
printf ("\n");
}
else printf("le graphe n'est pas complet");
}
}
}
}
return (0);
}
voila le nouveau code est que quelquun peut essaye de l'executer en dev c++ et voir pour m'aider svp
Lord_Patoche
Messages postés196Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 1 mai 20093 4 mai 2006 à 22:13
Essaies ça :
#include <stdio.h>
#define N 30
void tp1 ();
void tp2 ();
void tp3 ();
void tp4 ();
int choisir ();
int index (char s);
char sommet [30];
char l2[30];
int l1[N];
int M[N][N];
int r,nb,nbr;
int choix;
char s;
int main ()
{
//******************************************************************************
int r =0, nb =0, nbr = 0;
choisir ();
do
{
if (choix==1) tp1 ();
if (choix==2) tp2 ();
if (choix==3) tp3 ();
//if (choix==4) tp4 ();
}
while (choix==5);
return 0;
}
//******************************************************************************
int choisir ()
{int choix;
printf ("tapez 1 pour effectuer le tp2 \n");
printf ("tapez 2 pour effectuer le tp1 \n");
printf ("tapez 3 pour effectuer le tp3 \n");
printf ("tapez 4 pour effectuer le tp4 \n");
printf (" Donner votre choix ");
scanf ("%s\n",&choix);
return (choix);
}
//******************************************************************************
int index (char s)
{
int r=0;
int p;
p=1;
while ((sommet[p]!=s) && (sommet[p]!='*'))
{
p=p+1;
}
if (sommet[p]==s)
{
return(p);
}
else
{
r=r+1;
sommet[r]=s;
return (r);
}
}
//******************************************************************************
void tp2 ()
{ tp1();
int i,j;
char som1,som2;
int nb;
int nbr;
char sommet[30];
int M[30][30];
printf ("donner le nombre de sommets : ");
scanf ("%d\n",&nb);
printf ("donner le nombre d'arcs : ");
scanf ("%d\n",&nbr);
//initialisation du tableau sommet
for (i=1;i<=nb;i++)
{
sommet[i]= ' ' ;
}
//initialisation de la matrice M
for (i=1;i<=nb;i++)
for (j=1;j<=nb;j++)
M[i][j]=0;
//parcours en profondeur du graphe
for (i=1;i<=nbr;i++)
{
int x,y;
printf ("donner l'extremite initiale de l'arc \n: ");
scanf ("%c",&som1);
printf ("donner l'extremite terminale de l'arc \n: ");
scanf ("%c",&som2);
//x donne l'indice de som1 dans le tableau sommet
x=index(som1);
// meme chose pour y
y=index(som2);
M[x][y]=1;
}
//affichage de la matrice
for (i=1;i<=nb;i++)
{
for (j=1;j<=nb;j++)
printf ("%7d",M[i][j]);
printf ("\n");
}
tp1 ();
}
//******************************************************************************
void tp1 ()
{ int i 0,j 0,k = 0,d = 0,nb = 0,M[30][30],l1[30];
char sommet[30],l2[30];
k=0;
//la lecture de la matrice sommet-sommet
for(i=1;i<=nb;i++)
{
for(j=1;j<=nb;j++)
{
scanf( "%d",M[i][j]);
}
}
//la lecture du tableau des sommets
for (i=1;i<=nb;i++)
{
scanf ("%c",sommet[i]);
}
//initialisation de la liste l2
for (i=1;i<=N;i++)
{
l2[i]=' ';
}
//creation de la liste l2
for (i=1;i<=nb;i++)
{
for (j=1;j<=nb;j++)
{
if( M[i][j]==1)
{
printf (" le successeur du sommet : ");
printf ("%c",sommet[i]);
printf (" est : ");
printf ("%c\n",sommet[j]);
k=k+1;
l2[k]=sommet[j];
}
}
}
d=i;
for (j=1;j<=nb;i++)
{
if (M[d][j]!=1)
{
k=k+1;
l2[k]='*';
}
}
//affichage de la liste l2
for(i=1;i<=N;i++)
{
while (l2[i]!=' ' )
{
printf("%c",l2[i]);
printf (" ");
}
}
//initialisation de la liste l1
for(i=1;i<N;i++)
{
l1[i]=0;
}
//creation de la liste l1
i=1;
j=1;
k=0;
a:if(M[i][j]==1)
{
k=k+1;
l1[k]=k;
j=j+1;
while(j<=nb)
{
b:if(M[i][j]==1)
{
k=k+1;
j=j+1;
goto b;
}
else
{
j=j+1;
goto b;
}
}
i=i+1;
j=1;
goto a;
}
else
{
j=j+1;
goto a;
}
int p;
p=k;
for (i=1;i<=N;i++)
{
if(l2[i]=='*')
{
l1[p]=p;
}
}
//affichage de la liste l1
for(i=1;i<=N;i++)
{
while (l1[i]!=0)
{
printf("%d",l1[i]);
printf (" ");
}
}
}
//******************************************************************************
void tp3 ()
{ int i 0,j 0,nb = 0,M[30][30];
for (i=1;i<=nb;i++)
{
for (j=1;j<=nb;j++)
{
if ((M[i][j]==1)&&(i!=j))
{
if ((M[j][i]==1)&&(i!=j))
{
printf (" le graphe est symétrique ");
printf ("\n");
}
else printf (" le graphe est antisymetrique ");
}
if ((M[i][j]!=1) && (M[j][i]!=1))
{
printf (" le graphe est complet ");
printf ("\n");
}
else printf("le graphe n'est pas complet");
}
}
}
A+.
LaPatoshe
Vous n’avez pas trouvé la réponse que vous recherchez ?