Un pro de l'informatique-programmation en c pour m'aider ?
NeguevLycurgue
2023-12-07 21:10:39
Le 07 décembre 2023 à 21:02:33 :
j'ai envoyer une premiere version du code au prof et il ma dis : au sujet de la génération aléatoire, la fonction remplirGrapheLis semble générer plus d'arêtes que numEdges. Par exemple, si je souhaite un graphe à 10 sommets et 10 arêtes, j'obtiens des listes d'adjacence de taille 3 à chaque fois, donc 30 arêtes.
mon code :
// Fonction pour remplir le graphe aléatoirement avec Lis
void remplirGrapheLis(struct Lis* lis, int numEdges) {
srand(time(NULL));
// Ajouter des arêtes aléatoires avec des poids entre 1 et 10
int edgesAdded = 0;
while (edgesAdded < numEdges) {
int src = rand() % lis->numNodes;
int dest = rand() % lis->numNodes;
if (src != dest) {
addEdgeLis(lis, src, dest);
edgesAdded++;
}
}
}
ca donne sa :https://image.noelshack.com/fichiers/2023/49/4/1701979325-capture-d-ecran-2023-12-07-a-20-17-30.pnghttps://image.noelshack.com/fichiers/2023/49/4/1701979331-capture-d-ecran-2023-12-07-a-20-17-55.png
Tu peux mettre du code dans JVC pour que ça plus lisible
If(true) return 0;
Lothbrok_JVC
2023-12-07 21:10:41
Le 07 décembre 2023 à 21:09:44 :
Le 07 décembre 2023 à 21:02:33 :
j'ai envoyer une premiere version du code au prof et il ma dis : au sujet de la génération aléatoire, la fonction remplirGrapheLis semble générer plus d'arêtes que numEdges. Par exemple, si je souhaite un graphe à 10 sommets et 10 arêtes, j'obtiens des listes d'adjacence de taille 3 à chaque fois, donc 30 arêtes.
mon code :
// Fonction pour remplir le graphe aléatoirement avec Lis
void remplirGrapheLis(struct Lis* lis, int numEdges) {
srand(time(NULL));
// Ajouter des arêtes aléatoires avec des poids entre 1 et 10
int edgesAdded = 0;
while (edgesAdded < numEdges) {
int src = rand() % lis->numNodes;
int dest = rand() % lis->numNodes;
if (src != dest) {
addEdgeLis(lis, src, dest);
edgesAdded++;
}
}
}
ca donne sa :https://image.noelshack.com/fichiers/2023/49/4/1701979325-capture-d-ecran-2023-12-07-a-20-17-30.pnghttps://image.noelshack.com/fichiers/2023/49/4/1701979331-capture-d-ecran-2023-12-07-a-20-17-55.png
bah montre nous la fonction addEdgeLis, tu vérifies si l'arrête est pas déjà présente dedans?
// Fonction pour ajouter une arête à la liste d'adjacence (Lis)
void addEdgeLis(struct Lis* lis, int src, int dest) {
struct Node* newNode = createNode(dest);
newNode->next = lis->array[src];
lis->array[src] = newNode;
}
ddpm
2023-12-07 21:16:21
Le 07 décembre 2023 à 21:10:41 :
Le 07 décembre 2023 à 21:09:44 :
Le 07 décembre 2023 à 21:02:33 :
j'ai envoyer une premiere version du code au prof et il ma dis : au sujet de la génération aléatoire, la fonction remplirGrapheLis semble générer plus d'arêtes que numEdges. Par exemple, si je souhaite un graphe à 10 sommets et 10 arêtes, j'obtiens des listes d'adjacence de taille 3 à chaque fois, donc 30 arêtes.
mon code :
// Fonction pour remplir le graphe aléatoirement avec Lis
void remplirGrapheLis(struct Lis* lis, int numEdges) {
srand(time(NULL));
// Ajouter des arêtes aléatoires avec des poids entre 1 et 10
int edgesAdded = 0;
while (edgesAdded < numEdges) {
int src = rand() % lis->numNodes;
int dest = rand() % lis->numNodes;
if (src != dest) {
addEdgeLis(lis, src, dest);
edgesAdded++;
}
}
}
ca donne sa :https://image.noelshack.com/fichiers/2023/49/4/1701979325-capture-d-ecran-2023-12-07-a-20-17-30.pnghttps://image.noelshack.com/fichiers/2023/49/4/1701979331-capture-d-ecran-2023-12-07-a-20-17-55.png
bah montre nous la fonction addEdgeLis, tu vérifies si l'arrête est pas déjà présente dedans?
// Fonction pour ajouter une arête à la liste d'adjacence (Lis)
void addEdgeLis(struct Lis* lis, int src, int dest) {
struct Node* newNode = createNode(dest);
newNode->next = lis->array[src];
lis->array[src] = newNode;
}
bah la tu créés l'arête que dans un sens, de src vers dest, il faut aussi que tu mettes une arête de dest vers src si ton graphe est non orienté
aussi il faudrait que tu vérifies si dest est pas déjà dans lis->array[src] pour pas dupliquer les arêtes je pense
Taku[oo]
2023-12-07 21:17:10
Bordel t'as vraiment besoin d'aide pour ça ?
Lothbrok_JVC
2023-12-07 21:18:39
Le 07 décembre 2023 à 21:17:10 :
Bordel t'as vraiment besoin d'aide pour ça ?
t'es au courant que chacun a sa spécialité et que le c n'en fait pas partie le génie ?
Lothbrok_JVC
2023-12-07 21:19:26
Le 07 décembre 2023 à 21:16:21 :
Le 07 décembre 2023 à 21:10:41 :
Le 07 décembre 2023 à 21:09:44 :
Le 07 décembre 2023 à 21:02:33 :
j'ai envoyer une premiere version du code au prof et il ma dis : au sujet de la génération aléatoire, la fonction remplirGrapheLis semble générer plus d'arêtes que numEdges. Par exemple, si je souhaite un graphe à 10 sommets et 10 arêtes, j'obtiens des listes d'adjacence de taille 3 à chaque fois, donc 30 arêtes.
mon code :
// Fonction pour remplir le graphe aléatoirement avec Lis
void remplirGrapheLis(struct Lis* lis, int numEdges) {
srand(time(NULL));
// Ajouter des arêtes aléatoires avec des poids entre 1 et 10
int edgesAdded = 0;
while (edgesAdded < numEdges) {
int src = rand() % lis->numNodes;
int dest = rand() % lis->numNodes;
if (src != dest) {
addEdgeLis(lis, src, dest);
edgesAdded++;
}
}
}
ca donne sa :https://image.noelshack.com/fichiers/2023/49/4/1701979325-capture-d-ecran-2023-12-07-a-20-17-30.pnghttps://image.noelshack.com/fichiers/2023/49/4/1701979331-capture-d-ecran-2023-12-07-a-20-17-55.png
bah montre nous la fonction addEdgeLis, tu vérifies si l'arrête est pas déjà présente dedans?
// Fonction pour ajouter une arête à la liste d'adjacence (Lis)
void addEdgeLis(struct Lis* lis, int src, int dest) {
struct Node* newNode = createNode(dest);
newNode->next = lis->array[src];
lis->array[src] = newNode;
}
bah la tu créés l'arête que dans un sens, de src vers dest, il faut aussi que tu mettes une arête de dest vers src si ton graphe est non orienté
aussi il faudrait que tu vérifies si dest est pas déjà dans lis->array[src] pour pas dupliquer les arêtes je pense
une idée de comment faire ?
YoyoRouge
2023-12-07 21:20:03
Le 07 décembre 2023 à 21:18:39 :
Le 07 décembre 2023 à 21:17:10 :
Bordel t'as vraiment besoin d'aide pour ça ?
t'es au courant que chacun a sa spécialité et que le c n'en fait pas partie le génie ?
c'est pas un problème de C mais d'algo/reflexion hein
ddpm
2023-12-07 21:20:54
Le 07 décembre 2023 à 21:19:26 :
Le 07 décembre 2023 à 21:16:21 :
Le 07 décembre 2023 à 21:10:41 :
Le 07 décembre 2023 à 21:09:44 :
Le 07 décembre 2023 à 21:02:33 :
j'ai envoyer une premiere version du code au prof et il ma dis : au sujet de la génération aléatoire, la fonction remplirGrapheLis semble générer plus d'arêtes que numEdges. Par exemple, si je souhaite un graphe à 10 sommets et 10 arêtes, j'obtiens des listes d'adjacence de taille 3 à chaque fois, donc 30 arêtes.
mon code :
// Fonction pour remplir le graphe aléatoirement avec Lis
void remplirGrapheLis(struct Lis* lis, int numEdges) {
srand(time(NULL));
// Ajouter des arêtes aléatoires avec des poids entre 1 et 10
int edgesAdded = 0;
while (edgesAdded < numEdges) {
int src = rand() % lis->numNodes;
int dest = rand() % lis->numNodes;
if (src != dest) {
addEdgeLis(lis, src, dest);
edgesAdded++;
}
}
}
ca donne sa :https://image.noelshack.com/fichiers/2023/49/4/1701979325-capture-d-ecran-2023-12-07-a-20-17-30.pnghttps://image.noelshack.com/fichiers/2023/49/4/1701979331-capture-d-ecran-2023-12-07-a-20-17-55.png
bah montre nous la fonction addEdgeLis, tu vérifies si l'arrête est pas déjà présente dedans?
// Fonction pour ajouter une arête à la liste d'adjacence (Lis)
void addEdgeLis(struct Lis* lis, int src, int dest) {
struct Node* newNode = createNode(dest);
newNode->next = lis->array[src];
lis->array[src] = newNode;
}
bah la tu créés l'arête que dans un sens, de src vers dest, il faut aussi que tu mettes une arête de dest vers src si ton graphe est non orienté
aussi il faudrait que tu vérifies si dest est pas déjà dans lis->array[src] pour pas dupliquer les arêtes je pense
une idée de comment faire ?
il me manque beaucoup d'infos, à quoi ressemble la struct Lis, la fonction createNode, c'est quoi le but de l'exo etc. j'ai un peu la flemme
Lothbrok_JVC
2023-12-07 21:22:44
Le 07 décembre 2023 à 21:20:03 :
Le 07 décembre 2023 à 21:18:39 :
Le 07 décembre 2023 à 21:17:10 :
Bordel t'as vraiment besoin d'aide pour ça ?
t'es au courant que chacun a sa spécialité et que le c n'en fait pas partie le génie ?
c'est pas un problème de C mais d'algo/reflexion hein
je deteste l'algo khey c'est pour sa je galère
Taku[oo]
2023-12-07 21:23:34
Le 07 décembre 2023 à 21:18:39 :
Le 07 décembre 2023 à 21:17:10 :
Bordel t'as vraiment besoin d'aide pour ça ?
t'es au courant que chacun a sa spécialité et que le c n'en fait pas partie le génie ?
Je suis pas un génie moi, pourtant je comprends que tu bacles tes étudeshttps://image.noelshack.com/fichiers/2018/18/1/1525114021-1521408136-trois.jpg
YoyoRouge
2023-12-07 21:24:05
Le 07 décembre 2023 à 21:22:44 :
Le 07 décembre 2023 à 21:20:03 :
Le 07 décembre 2023 à 21:18:39 :
Le 07 décembre 2023 à 21:17:10 :
Bordel t'as vraiment besoin d'aide pour ça ?
t'es au courant que chacun a sa spécialité et que le c n'en fait pas partie le génie ?
c'est pas un problème de C mais d'algo/reflexion hein
je deteste l'algo khey c'est pour sa je galère
fais des dessins, c'est des cases et des fleches
fais le en python avec objet si tu veux au début pour tester l'algo, ensuite du passes au c
P-p-puceau
2023-12-07 21:24:17
post ici dans le doute
Lothbrok_JVC
2023-12-07 21:26:38
Le 07 décembre 2023 à 21:23:34 :
Le 07 décembre 2023 à 21:18:39 :
Le 07 décembre 2023 à 21:17:10 :
Bordel t'as vraiment besoin d'aide pour ça ?
t'es au courant que chacun a sa spécialité et que le c n'en fait pas partie le génie ?
Je suis pas un génie moi, pourtant je comprends que tu bacles tes étudeshttps://image.noelshack.com/fichiers/2018/18/1/1525114021-1521408136-trois.jpg
je bacle surement la matière c'est vrai mais pas mes etudes khey.
En plus si je suis ici a demander de l'aide au lieu de me toucher les couilles a 22h j'appelle pas ca bacler
SolitaireSeul
2023-12-07 21:26:49
Il manque la fonction p(ost)} ((o: u=} [Can[er)]
Lothbrok_JVC
2023-12-07 21:28:53
Le 07 décembre 2023 à 21:26:49 :
Il manque la fonction p(ost)} ((o: u=} [Can[er)]
merci du up nonobastant
P-p-puceau
2023-12-07 21:40:13
- include <stdio.h>
- include <stdlib.h>
- include <time.h>
// Structure de nœud pour la liste d'adjacence
struct Node {
int dest;
struct Node* next;
};
// Structure pour la liste d'adjacence
struct Lis {
int numNodes;
struct Node** array;
};
// Fonction pour ajouter une arête à la liste d'adjacence
void addEdgeLis(struct Lis* lis, int src, int dest) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->dest = dest;
newNode->next = lis->array[src];
lis->array[src] = newNode;
// Pour un graphe non orienté, ajouter également l'arête en sens inverse
newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->dest = src;
newNode->next = lis->array[dest];
lis->array[dest] = newNode;
}
// Fonction pour remplir le graphe aléatoirement avec Lis
void remplirGrapheLis(struct Lis* lis, int numEdges) {
srand(time(NULL));
// Ajouter des arêtes aléatoires avec des poids entre 1 et 10
int edgesAdded = 0;
while (edgesAdded < numEdges) {
int src = rand() % lis->numNodes;
int dest = rand() % lis->numNodes;
if (src != dest) {
addEdgeLis(lis, src, dest);
edgesAdded++;
}
}
}
int main() {
// Exemple d'utilisation
int numNodes = 5; // Remplacez 5 par le nombre de nœuds souhaité
struct Lis* lis = (struct Lis*)malloc(sizeof(struct Lis));
lis->numNodes = numNodes;
lis->array = (struct Node**)malloc(numNodes * sizeof(struct Node*));
// Initialisez la liste d'adjacence
for (int i = 0; i < numNodes; ++i)
lis->array[i] = NULL;
// Remplissez le graphe aléatoirement avec 8 arêtes (vous pouvez changer ce nombre)
remplirGrapheLis(lis, 8);
// À ce stade, lis contient la liste d'adjacence du graphe rempli aléatoirement
// Vous pouvez ajouter du code pour afficher la liste d'adjacence ou effectuer d'autres opérations sur le graphe.
return 0;
}
Taku[oo]
2023-12-07 21:56:04
Le 07 décembre 2023 à 21:22:44 :
Le 07 décembre 2023 à 21:20:03 :
Le 07 décembre 2023 à 21:18:39 :
Le 07 décembre 2023 à 21:17:10 :
Bordel t'as vraiment besoin d'aide pour ça ?
t'es au courant que chacun a sa spécialité et que le c n'en fait pas partie le génie ?
c'est pas un problème de C mais d'algo/reflexion hein
je deteste l'algo khey c'est pour sa je galère
C'est pour ça qu'il faut schématiser sur papier