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 :oui:
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

  1. include <stdio.h>
  2. include <stdlib.h>
  3. 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

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    ⚠️ Les archives de novembre sont désormais disponibles.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.