satanas101
1 déc. 2005 à 17:37
// reseau de canalisation
#include<stdio.h>
#include<stdlib.h>
struct troncon
{int origine; int extremite; int cout;};
void saisie (int np,int nt, struct troncon classement[])
{struct troncon x;
printf("Rentrer le nombre de points");
scanf("%d",&np);
printf("Rentrer le nombre de troncon");
scanf("%d",&nt);
for(int i=0;i<nt;i++)
{printf("donner l'origine du troncon de rang %d \n");
scanf("%d",&x.origine);
printf("donner l'extremite du troncon de rang %d\n");
scanf("%d",&x.extremite);
printf("donner le cout du troncon de rang %d\n",i);
scanf("%d",&x.cout);
classement[i]=x;}
}
struct troncon calcul (int nombreretenu, int np,struct troncon classement[])
{
int groupe[np];int rang=0;
for(int i=0;i<np;i++)
groupe[i]=i+1;
struct troncon canol;
struct troncon retenu[np-1];
int i=0;
while (nombreretenu < np)
{canol=classement[rang];
if (groupe[canol.origine] != groupe[canol.extremite])
{nombreretenu++;
for(int sommet=0;i<np;i++)
{if (groupe[sommet]==groupe[canol.extremite])
groupe[sommet]=groupe[canol.extremite];
}
retenu[i]=canol;
i++;
}
rang++;
}
return retenu[np-1];
}
int main()
{int np ;int nt;struct troncon x;
struct troncon classement[nt];
saisie(np,nt,classement);
int nombreretenu=0;
struct troncon retenu[np-1];
calcul(nombreretenu,np,classement);
printf("les troncons retenus sont");
for(int i=0;i<np-1;i++)
{printf("%d %d %d \n",retenu[i].origine,retenu[i].extremite,retenu[i].cout);}
}