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

[C] Probleme de variable

garzul
garzul
Niveau 8
26 septembre 2004 à 18:35:37

Je suis completement debutant en C pas en programmation :) ( Pure basic , C++ , Html , un peu de Php) et j´ai essayer de faire une petite calculette en C mais je n´arrive pas a comprendre pourquoi il me donne un grand nombre et pas le resultat pourriez vous m´aidez voici le code : / * Mon premier programme en c */
/ * Garzul | 2004 */

  1. include < stdio.h> / * Inclue la librairie stdio */

int main()

{
int a;
int b;
int r;

r = a + b;

printf("Veuillez choisir un nombre : " );

gets(a);

printf("\n");

printf("Veuillez choisir un deuxième nombre : " );

gets(b);

printf("\n");

printf("L´addition des ces deux opération fait : %d" , r ) ;

gets(a);

return 0;

}

dnob700
dnob700
Niveau 10
26 septembre 2004 à 18:38:02
  1. include < stdio.h> / * Inclue la librairie stdio */

int main()

{
int a;
int b;
int r;

printf("Veuillez choisir un nombre : " ) ;

gets(a);

printf("\n");

printf("Veuillez choisir un deuxième nombre : " ) ;

gets(b);

printf("\n");

r = a + b;

printf("L´addition des ces deux opération fait : %d" , r ) ;

/ * ou bien
printf("L´addition des ces deux opération fait : %d" , a+b ) ;

  • /

gets(a);

return 0;

}

et puis si tu sais faire du C++, tu devrai pas avoir de mal en C...

dnob700
dnob700
Niveau 10
26 septembre 2004 à 18:39:29

Mais si tu lisais les warning de ton compilo, tu verrais qu´il t´aurais dit : atention a et b ont été utilisé sans avoir été initialisé ( en anglais bien sûr).

Et c´est le cas, tu n´a pas encore enregistré la valeur de a et b quand tu fait leur somme dans r.

garzul
garzul
Niveau 8
26 septembre 2004 à 18:49:46

Bah merci pour m´avoir aider et pour le c++ bah c´est pas pareil car je trouve que c´est plus simple mais bon merci quand meme ; )

garzul
garzul
Niveau 8
26 septembre 2004 à 18:55:12

Heu c´est pas pour dire mais j´ai le meme probleme sa change rien j´ai un truc qui fait 5 chiffre quand je tape 1 +2 et le compilo ne ma rien dit de ce type :)

dnob700
dnob700
Niveau 10
26 septembre 2004 à 18:59:51

t´as bien changé la place du r=a+b; ?

parce que c´est sur que le problème venait de là.

bon, mais je ne fait pas de C, alors ej ne connait pas gets, mais je viens de regarder ma doc, et normallement, c´est pour lire une chaine de caractère, pas des chiffres.

je en sais pas quellefonctions il faut utiliser ( tu peut toujours le faire avec scanf) mais certainement pas gets, ton problème vient aussi de là ( n´empêche il faut quand me^me mettre le r=... à la fin et non pas au début).

voila.

garzul
garzul
Niveau 8
26 septembre 2004 à 19:18:56

Ok merci mais je vois pas quoi utiliser pour remplacer gets :/

dnob700
dnob700
Niveau 10
26 septembre 2004 à 19:26:58

scanf

DasHuhn
DasHuhn
Niveau 10
26 septembre 2004 à 20:29:37

On t´a rien dit pour le gets() ? Parce que à chaque appel d´un gets(), sous MacOS X, y´a " Warning : this program uses gets, which is unsafe" qui s´affiche.

" Mais si tu lisais les warning de ton compilo, tu verrais qu´il t´aurais dit : atention a et b ont été utilisé sans avoir été initialisé ( en anglais bien sûr). "
=> Oui mais là c´est pas grave :)

Tu peux utiliser une fonction du genre atoi() mais je me souviens plus.

dnob700
dnob700
Niveau 10
26 septembre 2004 à 20:41:47

si, pour le premier warning, c´est grave, parce qu´il fesait la somme de a et b avant de faire gats(a) et gets(b) alors même si gets n´était pas la bonne fonction, de toutes façons, il n´y avait rien dans a et b au moment où il le faisait et le compilo l´aurait prévenu.

DasHuhn
DasHuhn
Niveau 10
26 septembre 2004 à 20:49:38

Ah oui pas fait gaffe à son premier code. Loool.

MathieuN7
MathieuN7
Niveau 10
26 septembre 2004 à 23:02:05

si! Il y avait des valeurs aléatoires!

dnob700
dnob700
Niveau 10
26 septembre 2004 à 23:16:20

c´est pas vraiment des valeurs aléatoire, c´est juste des truc qu´il est assez dificile de prévoir mais qui sont les reste de ce qu´il y avait avant dans la mémoire.

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