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] correction code.

B-17F
B-17F
Niveau 8
12 novembre 2006 à 12:13:10

Bonjour
Y a t-il des erreur ?
programme en c.

  1. include <stdio.h>
  2. include <stdlib.h>

int main(int argc, char *argv[])
{
double moyenne = 0, apl = 0, educationMusical = 0, eps = 0, francais = 0, hist_geo = 0, lv1 = 0, math = 0, p_c = 0, svt = 0, techno = 0, idd = 0;

printf("Arts Plastiques:");
scanf("%lf", apl);

printf("Education Musicale:");
scanf("%lf", educationMusical);

printf("Education Physique:");
scanf("%lf", eps);

printf("Français:");
scanf("%lf", francais);

printf("Histoire Geographie:");
scanf("%lf", hist_geo);

printf("Langue vivante 1:");
scanf("%lf", lv1);

printf("Mathématiques:");
scanf("%lf", math);

printf("Physique-Chimie:");
scanf("%lf", p_c);

printf("Science de la vie\n et de la terre:");
scanf("%lf", svt);

printf("Technologie:");
scanf("%lf", techno);

printf("I.D.D:");
scanf("%lf", idd);

moyenne = apl + educationMusical + eps + francais + hist_geo + lv1 + math + p_c + svt + techno + idd;

printf("Votre moyenne: %lf", moyenne);

system("PAUSE");
return 0;
}

kikou81
kikou81
Niveau 9
12 novembre 2006 à 12:35:30

scanf ne s´utilise pas comme cela, tu dois faire scanf("%d",&nomdetavariable);

Pour le %d ca depend de ton type de variables, ensuite pour ta moyenne ca ne vas pas, il faut que tu divise la somme que tu as fait par le nombre ne matiere :ok:

godrik
godrik
Niveau 30
12 novembre 2006 à 12:49:51

notes qu´en l´occurence c´est bien %f.
Mais aussi pour obtenir une moyenne, il faut diviser...

kikou81
kikou81
Niveau 9
12 novembre 2006 à 12:55:07

Mais ca existe %lf?C´est quel type de variables?

B-17F
B-17F
Niveau 8
12 novembre 2006 à 13:08:01

ok j´avais oublié le & lol

DantePC
DantePC
Niveau 10
12 novembre 2006 à 15:28:48

"%lf" attend l´adresse d´un long double.

Sinon les seules petites remarques qu´il y a faire :

- system("PAUSE"); pas portable
- paramètres de main non utilisés
- stdlib.h innutile

kikou81
kikou81
Niveau 9
12 novembre 2006 à 18:41:40

Dante PC, pourquoi system pause n´est pas portable, ce n´est pas portable pour quel genre de machine?Linux?

godrik
godrik
Niveau 30
12 novembre 2006 à 18:42:46

Linux, par exemple. Enfin tous les non windows probablement

kikou81
kikou81
Niveau 9
12 novembre 2006 à 18:43:23

Parce que je crois avoir lu quelque par que system pause etait compatible linux, en fait a l´execution il est juste remplacer par linux par une autre instruction similaire, a verifier !

dnob700
dnob700
Niveau 10
12 novembre 2006 à 22:01:50

disons que c´est moyennement portable :

tu pourra compiler un programme qui contient l´instruction system("pause"); sur linux sans problème, et le programme va fonctionner sans planter. Mais par contre, cette instruction ne fera rien.

Car system est une instruction qui donne son paramètre au système d´exploitation pour qu´il l´exécute (comme si la chaîne était tapé dans une console). Or pause est une instruction windows, mais pas linux. Donc un système linux ne fera rien en recevant cette instruction.

DantePC
DantePC
Niveau 10
13 novembre 2006 à 12:38:52

Exactement :) le programme se déroulera correctement mais au moment d´éxécuter la commande "PAUSE", elle ne sera pas reconnue sur un syteme Unixoïde. Je pense qu´il vaut mieux utiliser getchar(); :

  1. include <stdio.h>

static void purge(void)
{
int c = 0;
while ((c = getchar()) != ´\n´ && c != EOF)
{
}
}

int main(void)
{
<...>
purge();
getchar();
return 0;
}

:ok:

guyver2
guyver2
Niveau 10
13 novembre 2006 à 20:15:10

chez moi un system("pause"); renvois
"sh: pause : commande introuvable"
donc effectivement rien de bien mechant. De plus cette instruction est utile sous windows ou on a pas l´abitude de jouer avec la console, mais sous linux, elle reste souvent ouverte donc la fin du programme n´entraine pas sa fermeture donc la fonction pause devient inutile (quand elle est utilisée pour cela).
Donc en gros cette ligne est utile sous windows et transparente sous *n*x, ça rend le code portable a défaut d´etre propre.

m-2
m-2
Niveau 10
13 novembre 2006 à 21:00:06

à voir son programme, je ne crois pas que la portabilité soit une de ses priorités... ni l´utilisation des parametres du main!

Tenguryu
Tenguryu
Niveau 10
13 novembre 2006 à 23:18:31

Euh, il ne déclare pas ses variables non plus :gni:

:)

guyver2
guyver2
Niveau 10
14 novembre 2006 à 07:08:42

Tenguruy

si il le fait; c´est pas super clair mais au moins c´est a la bonne place (au debut du bloc d´instruction dans lequel elle sont utilisées)

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