CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

100000€ à celui ki m'aidera (langage C)

Oasis_its_good
Oasis_its_good
Niveau 7
20 février 2006 à 18:33:13

Sérieux j´vois pas ce ki ne va pas ds cette fonction :

typedef struct chainon {int val;
char nom[10];
struct chainon*suite;} *liste;

liste nouv(int v, char n[10], liste p)
{liste a;
a=malloc(sizeof(*a));
a->val=v;
strcmp(a->nom,n);
a->suite=p;
return a;
}

Cette fonction doit ajouter un entier v et un nom n à une liste chainée p.

Lord-SiIex
Lord-SiIex
Niveau 6
20 février 2006 à 18:38:04

Le problème vient d´ici je pense :

typedef struct chainon {int val;
char nom[10];
struct chainon*suite;} *liste;

T´es sûr qu´il faut mettre un ; suivit d´un } ?

fightdante
fightdante
Niveau 10
20 février 2006 à 18:39:12

lord tu pourrai me rep sur mon topic plz :)

Oasis_its_good
Oasis_its_good
Niveau 7
20 février 2006 à 18:42:22

En principe oui, le ; est bien placé normalement. En tt cas c comme ca kon a défini le type liste en cours.

Le probleme en fait ne vient pas de la syntaxe, paske tt le compilateur ne trouve aucune erreur.

Le prob c ke kan j´essaie d´ajouter un nom et un entier à la liste, seul l´entier semble etre lu.

Lord-SiIex
Lord-SiIex
Niveau 6
20 février 2006 à 18:47:30

Tu utilises quel compilateur ?
Je t´aurais bien dis d´aller débugger ça mais si il ne trouve aucune erreur...

Ca ne serait pas un problème de "long" et "double" comme avec les chiffres entier ou à virgule ?

Oasis_its_good
Oasis_its_good
Niveau 7
20 février 2006 à 18:52:10

Je sais pas du tout c koi comme compilateur, je sais juste que j´ai Dev-C++ 4.9.9.1

Pour les entiers, je pense ke le prob ne vient pas de là, mais plutot de comment mettre un nom dans p->nom.

En fait, c strxpy pr copier les caracteres, mais ca ne marche tjrs pas... :-(

lolmister
lolmister
Niveau 9
20 février 2006 à 18:52:40

peut etre les espaces !

Lord-SiIex
Lord-SiIex
Niveau 6
20 février 2006 à 18:54:58

A ok moi j´ai la Dev-C++ 4.9.9.2 mais c´est pareil.

Ou alors le problème serait de trouver un emplacement pour le nom ou plutôt mieux préciser ou se trouvera le nom dans "p" si il "p" à plusieurs partis.

Oasis_its_good
Oasis_its_good
Niveau 7
20 février 2006 à 18:55:23

les espaces ? je ne tape aucun espace à l´éxécution du prog.

Mais je sais pas comment faire pour mettre un nom dans a->nom ca me rend fou.

Lord-SiIex
Lord-SiIex
Niveau 6
20 février 2006 à 18:56:12

Faudrait demander à glut, moi je débute dans le C j´connais pas grand chose à part les bases...

Oasis_its_good
Oasis_its_good
Niveau 7
20 février 2006 à 18:57:20

Oui, p est à plusieurs partie est peut contenir plusieurs chainons, mais cette fonction était censée marcher, vu ke en cours, c´est la mm kon utilise sauf ke c´est sur des chainons ki contienent seulement un entier et un pointeur sur le chainon suivant.

Là depuis ke j´ai rajouté le nom ds le chainon, ca créé des prob.

Oasis_its_good
Oasis_its_good
Niveau 7
20 février 2006 à 18:58:05

Ok, glut, si tu veux te faire 100000€ facile, te gènes pas ^^

Pseudo supprimé
Pseudo supprimé 20 février 2006 à 19:06:41

Oh, une liste chaînée en C... Boarf, regarde dans ton cours sur les pointeurs, l´explication y est :p (100000€ d´économie)...

Oasis_its_good
Oasis_its_good
Niveau 7
20 février 2006 à 19:16:09

Ouais mais bon, j´ai bien regardé, mais j´arrive tjrs pas à comprendre ds kel cas utiliser les pointeurs et ds kel cas on peut s´en passer :-(

Ce qui me fout le + la haine, c´est que avec les listes contenant seulement un entier et un pointeur, j´y arrive parfaitement (tri, fusion, etc...) alors ke dès kon rajoute un nom de 10 caractères ds la liste, ca bloque.

Mais bon, je persiste dans ma mirobolante proposition : je passe à 200000€ à celui ki aura réussi à trouver ce ki ne va pas dans cette fonction nouv. C´est elle la clé du programme en +.

Furuxus
Furuxus
Niveau 10
20 février 2006 à 19:20:55

et vous y croyer a ces 200000e la ??

:honte:

Doberman27
Doberman27
Niveau 10
20 février 2006 à 19:22:05

C´est toi qui en a parler le premier donc bon...

Oasis_its_good
Oasis_its_good
Niveau 7
20 février 2006 à 19:22:30

Bah nan, personne n´y croit.
C´est juste pr kon sache cmt chuis desespéré...

CitsuoM
CitsuoM
Niveau 3
20 février 2006 à 19:43:11

Essaye un strcpy au lieu d´un strcmp

Oasis_its_good
Oasis_its_good
Niveau 7
20 février 2006 à 20:37:21

Oui, c´est ce dont j´me suis rendu compte.

Là ca avance un peu :

liste nouv(int v, char n[10], liste p)
{liste a;
a=malloc(sizeof(*a));
a->val=v;
strcpy(a->nom,n);
a->suite=p;
return a;
}

Ca marche dans le programme principal.

Mnt, c la fonction ki lit ce ki est tapé ki me pose probleme :

void saisie(liste p)
{int v; char n[10];
p=malloc(sizeof(*p));
p=0;
do {scanf("%d",&v);
scanf("%9s",n);
nouv(v,n,p);
aff(p);
} while (v!=0);
}

Tommy_Vercettix
Tommy_Vercettix
Niveau 42
20 février 2006 à 20:46:56

Tu payes par chèque, par virement ou par CB ? :sournois:

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment