Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2056 connectés 

  FORUM HardWare.fr
  Programmation
  C

  structure if - else (débutant)

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

structure if - else (débutant)

n°1295631
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 16:04:36  profilanswer
 

j'aimerais savoir s'il est possible de metrre un if dans un else en fait parce que qd je le fais j'ai un " unrecognized statement " de la part de lcc qd je compile...
 
pour clarifier les choses, il s'agit de trier juste 3 valeurs (par comparaison >= ou =< )  et d'en afficher la plus grande.  
 
si besoin jmet la partie du code qui merde.

mood
Publicité
Posté le 31-01-2006 à 16:04:36  profilanswer
 

n°1295646
m3z
il faut toujours faire simple
Posté le 31-01-2006 à 16:17:03  profilanswer
 

tyler1207 a écrit :


si besoin jmet la partie du code qui merde.


 
Oui il y a besoin ;-)

n°1295736
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 17:51:43  profilanswer
 

if ((tab_note[0][0] <= tab_note[1][1])&&(tab_note[1][1] <= tab_note[2][2]));
 
  {printf("%s, %s,à la plus haute note\n", &tab_nom[2][2], &tab_prenom[2][2]);}
 
else;{if ((tab_note[0][0] <= tab_note[1][1])&&(tab_note[2][2] <= tab_note[1][1]));
 
  {printf("%s, %s,à la plus haute note\n", &tab_nom[1][1], &tab_prenom[1][1]);}}
 
 
 
vala !

Message cité 1 fois
Message édité par tyler1207 le 31-01-2006 à 17:52:29
n°1295754
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 18:26:49  profilanswer
 

on oublie de toute façon je ne pense pas que cet algo soit efficace.  je suis en train de le réecrire d'une autre manière  :
 
 
{
 
 int ID;
 float Max = 0, Moy;
 char tab_nom[3][25];
 char tab_prenom[3][25];
 float tab_note[3][25];
 
 printf("Veuillez saisir le permier nom\n" );
 scanf("%s", &tab_nom[0][0]);
 printf("Veuillez saisir le premier prenom\n" );
 scanf("%s", &tab_prenom[0][0]);
 printf("Veuillez saisir la permiere note\n" );
 scanf("%d", &tab_note[0][0]);
 
 if (tab_note[0] >= Max);
  {Max = tab_note[0],ID=0;}
 
 
 
 
et je rencontre le pb suivant (tjrs avec lcc) :  
 
" operands of >= have illegal types 'pointer to float' and 'float' "  
et la ligne d'après " operands of = have illegal types 'float' and 'pointer to float'"
 

n°1295774
Carbon_14
Posté le 31-01-2006 à 18:48:52  profilanswer
 

Si float tab_note[3][25]; pourquoi oublier une dimension dans le if (tab_note[0][?]) ?
 
 if (tab_note[0] >= Max);  // Le point-virgule termine [le test], , il me semble
 
if () // sans ;
{
  blabla;
  blibli;
}


Message édité par Carbon_14 le 31-01-2006 à 18:50:00
n°1295797
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 18:59:20  profilanswer
 

j'ai en partie suivi tes conseils, c'est bon il compile  sans erreur maintenant :)  
 
mais qd je teste mon prog, tout va bien jusqu'à la fin de la saisie de la troisèeme personne. ensuite il fini très vite, sans rien afficher des résultats.
 
je trouve pas mon erreur.  
 
voici le code :  
 
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
 
 
{
 
 int ID;
 float Max = 0, Moy;
 char tab_nom[3][25];
 char tab_prenom[3][25];
 float tab_note[3][25];
 
 printf("Veuillez saisir le permier nom\n" );
 scanf("%s", &tab_nom[0]);
 printf("Veuillez saisir le premier prenom\n" );
 scanf("%s", &tab_prenom[0]);
 printf("Veuillez saisir la permiere note\n" );
 scanf("%d", &tab_note[0]);
 
 if (tab_note[0][24] >= Max);
  {Max = tab_note[0][24],ID=0;}
 
 printf("Veuillez saisir le second nom\n" );
 scanf("%s", &tab_nom[1]);
 printf("Veuillez saisir le second prenom\n" );
 scanf("%s", &tab_prenom[1]);
 printf("Veuillez saisir la seconde note\n" );
 scanf("%d", &tab_note[1]);
 
 if (tab_note[1][24] >= Max);
  {Max = tab_note[1][24],ID = 1;}
 
 printf("veuillez saisir le troisieme nom\n" );
 scanf("%s", &tab_nom[2]);
 printf("Veuillez saisir le troisieme prenom\n" );
 scanf("%s", &tab_prenom[2]);
 printf("Veuillez saisir la troisieme note\n" );
 scanf("%d", &tab_note[2]);
 
 if (tab_note[2][24] >= Max);
  {Max = tab_note[2][24],ID = 2;}
 
 printf("la meilleure note est",Max);
 printf("et a ete obtenue par",tab_nom[ID]);
 
 Moy = (tab_note[0][24]+tab_note[1][24]+tab_note[2][24])/3;[img][img][/img][/img]
 
 printf("la moyenne est de", Moy);
 
}

Message cité 1 fois
Message édité par tyler1207 le 31-01-2006 à 19:04:06
n°1295820
trevor
laissez la vie vous étonner...
Posté le 31-01-2006 à 19:29:15  profilanswer
 

je connais pas ton environnement de dev, mais tu peux avoir besoin de mettre un getch() final (biblio conio.h) pour bloquer l'exécution afin de voir les affichages à l'écran

n°1295821
MEI
|DarthPingoo(tm)|
Posté le 31-01-2006 à 19:30:34  profilanswer
 

La syntaxe c'est :

Code :
  1. if (condition)
  2. {
  3.     instruction;
  4. }
  5. else
  6. {
  7.     instruction;
  8. }


si tu met un ; tu admet qu'il n'y a qu'une instruction, ici : rien. Donc ton bloc en dessous est ignoré.
 
je sais pas si c'est le C qui veut ça, ou les profs qui apprenne le C qui code avec les pieds, mais presenter avec des indentation et avec aucune instruction après les crochets c'est mieux pour la lisibilité. Pourtant en C++/Java on m'a toujours appris comme ça.
 
edit : de plus, on ne met jamais deux instructions sur la meme ligne séparé de la virgule, c'est un peu trop peu previsible comme comportament, alors qu'un retour à la ligne et un ; ne coute pas grand chose. :)  
 
Donc 3 façons de faire :

Code :
  1. if (expression)
  2. {
  3.     instruction1;
  4.     instruction2;
  5. }


Code :
  1. if (expression) instruction_unique;


Code :
  1. if (expression) instruction1, instruction2;


 
Meme si la derniere, voir meme la seconde sont peut recommandé... à la rigueur la seconde on l'ecrirait :

Code :
  1. if (expression)
  2.     instruction_unique;


Message édité par MEI le 31-01-2006 à 19:37:53

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1295828
MEI
|DarthPingoo(tm)|
Posté le 31-01-2006 à 19:35:06  profilanswer
 

ton code corrigé et mieux présenté :
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int main()
  5. {
  6. int ID;
  7. float Max = 0;
  8. float Moy;
  9. char tab_nom[3][25];
  10. char tab_prenom[3][25];
  11. float tab_note[3][25];
  12.      printf("Veuillez saisir le permier nom\n" );
  13.      scanf("%s", &tab_nom[0]);
  14.      printf("Veuillez saisir le premier prenom\n" );
  15.      scanf("%s", &tab_prenom[0]);
  16.      printf("Veuillez saisir la permiere note\n" );
  17.      scanf("%d", &tab_note[0]);
  18.      if (tab_note[0][24] >= Max)
  19.      {
  20.         Max = tab_note[0][24];
  21.         ID=0;
  22.      }
  23.      printf("Veuillez saisir le second nom\n" );
  24.      scanf("%s", &tab_nom[1]);
  25.      printf("Veuillez saisir le second prenom\n" );
  26.      scanf("%s", &tab_prenom[1]);
  27.      printf("Veuillez saisir la seconde note\n" );
  28.      scanf("%d", &tab_note[1]);
  29.      if (tab_note[1][24] >= Max)
  30.      {
  31.         Max = tab_note[1][24];
  32.         ID = 1;
  33.      }
  34.     printf("veuillez saisir le troisieme nom\n" );
  35.     scanf("%s", &tab_nom[2]);
  36.     printf("Veuillez saisir le troisieme prenom\n" );
  37.     scanf("%s", &tab_prenom[2]);
  38.     printf("Veuillez saisir la troisieme note\n" );
  39.     scanf("%d", &tab_note[2]);
  40.     if (tab_note[2][24] >= Max)
  41.     {
  42.         Max = tab_note[2][24];
  43.         ID = 2;
  44.     }
  45.     printf("la meilleure note est",Max);
  46.     printf("et a ete obtenue par",tab_nom[ID]);
  47.     Moy = (tab_note[0][24] + tab_note[1][24] + tab_note[2][24]) / 3;
  48.     printf("la moyenne est de", Moy);
  49. }


Message édité par MEI le 31-01-2006 à 19:38:41

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1295844
Sve@r
Posté le 31-01-2006 à 19:46:20  profilanswer
 

Etant donné qu'un nom est lié à un prénom et une note, il serait judicieux de les regrouper dans une structure

Code :
  1. typedef struct {
  2.     char nom[25];
  3.     char prenom[25];
  4.     float note;
  5. } t_eleve;


 
Puis, dans le main, définir un tableau de 3 élèves =>"t_eleve tabEleve[3]"
 
Ensuite, tu veux faire saisir le nom n° x => scanf("%s", tabEleve[x - 1].nom)
 
Ou bien la note n° x => scanf("%f", &tabEleve[x - 1].note)
 
Maintenant je vois pas trop pourquoi ce [25] pour les notes... mais ce doit être parce qu'il y a trop de commentaires.


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
mood
Publicité
Posté le 31-01-2006 à 19:46:20  profilanswer
 

n°1295848
MEI
|DarthPingoo(tm)|
Posté le 31-01-2006 à 19:50:11  profilanswer
 

Sve@r a écrit :

Etant donné qu'un nom est lié à un prénom et une note, il serait judicieux de les regrouper dans une structure

Code :
  1. typedef struct {
  2.     char nom[25];
  3.     char prenom[25];
  4.     float note;
  5. } t_eleve;


 
Puis, dans le main, définir un tableau de 3 élèves =>"t_eleve tabEleve[3]"
 
Ensuite, tu veux faire saisir le nom n° x => scanf("%s", tabEleve[x - 1].nom)
 
Ou bien la note n° x => scanf("%f", &tabEleve[x - 1].note)
 
Maintenant je vois pas trop pourquoi ce [25] pour les notes... mais ce doit être parce qu'il y a trop de commentaires.


Sans enoncé on est un peu dans le flou et c'est sur que son code à l'air un peu bizard. A mon avis dans son enoncé doit il y a voir la contrainte 25 notes maximum.
 
Apres son pb etait la syntaxe de IF :)


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1295875
Emmanuel D​elahaye
C is a sharp tool
Posté le 31-01-2006 à 20:30:02  profilanswer
 

tyler1207 a écrit :

if ((tab_note[0][0] <= tab_note[1][1])&&(tab_note[1][1] <= tab_note[2][2]));
 
  {printf("%s, %s,à la plus haute note\n", &tab_nom[2][2], &tab_prenom[2][2]);}
 
else;{if ((tab_note[0][0] <= tab_note[1][1])&&(tab_note[2][2] <= tab_note[1][1]));
 
  {printf("%s, %s,à la plus haute note\n", &tab_nom[1][1], &tab_prenom[1][1]);}}


C'est quoi ces ';' ?


Message édité par Emmanuel Delahaye le 31-01-2006 à 20:31:18

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1295877
Emmanuel D​elahaye
C is a sharp tool
Posté le 31-01-2006 à 20:34:00  profilanswer
 

tyler1207 a écrit :

j'ai en partie suivi tes conseils, c'est bon il compile  sans erreur maintenant :)


Ca me fait toujours rire !


Compiling: main.c
main.c:7: error: conflicting types for 'main_'
C:/clib/frmwrk/inc/main.h:36: error: previous declaration of 'main_' was here
main.c:7: error: conflicting types for 'main_'
C:/clib/frmwrk/inc/main.h:36: error: previous declaration of 'main_' was here
main.c: In function `main_':
main.c:16: warning: char format, different type arg (arg 2)
main.c:18: warning: char format, different type arg (arg 2)
main.c:20: warning: int format, different type arg (arg 2)
main.c:26: warning: char format, different type arg (arg 2)
main.c:28: warning: char format, different type arg (arg 2)
main.c:30: warning: int format, different type arg (arg 2)
main.c:36: warning: char format, different type arg (arg 2)
main.c:38: warning: char format, different type arg (arg 2)
main.c:40: warning: int format, different type arg (arg 2)
main.c:45: warning: too many arguments for format
main.c:46: warning: too many arguments for format
main.c:48: error: syntax error before '[' token
main.c:52:2: warning: no newline at end of file
Process terminated with status 1 (0 minutes, 0 seconds)
5 errors, 12 warnings


Déjà, faire le ménage ...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1295881
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 20:38:03  profilanswer
 

merci merci d'avoir pris le tps  !  :jap:  g pas tt lu mais jsuis en train de le faire, là et jvais corriger ce qui cloche.  
 
juste pour mon prof, jsais pas si il fait ça ac les pieds mais pour le moment je penche plutôt pour le fait que c'est moi qui apprend et qui m'y prend mal  :whistle:
 
edit : en ce qui concerne mon environnement pour faire ça j'utilise lcc, pas par choix, juste pcq c'est ce qui est utilisé dans mon école.


Message édité par tyler1207 le 31-01-2006 à 20:40:19
n°1295887
gocho
Posté le 31-01-2006 à 20:44:15  profilanswer
 

y manque le return dans la correction [:dawao]

n°1295890
MEI
|DarthPingoo(tm)|
Posté le 31-01-2006 à 20:48:19  profilanswer
 

le return 0; manque ouai, mais bon c'est pas +/- automatique s'il manque sur les bon compilateurs ? ;)


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1295895
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 20:52:30  profilanswer
 

Sve@r a écrit :

Etant donné qu'un nom est lié à un prénom et une note, il serait judicieux de les regrouper dans une structure

Code :
  1. typedef struct {
  2.     char nom[25];
  3.     char prenom[25];
  4.     float note;
  5. } t_eleve;


 
Puis, dans le main, définir un tableau de 3 élèves =>"t_eleve tabEleve[3]"
 
Ensuite, tu veux faire saisir le nom n° x => scanf("%s", tabEleve[x - 1].nom)
 
Ou bien la note n° x => scanf("%f", &tabEleve[x - 1].note)
 
Maintenant je vois pas trop pourquoi ce [25] pour les notes... mais ce doit être parce qu'il y a trop de commentaires.


 
 
oui bien sûr une structure serait on ne peut plus approprié ici, mais je n'ai pas le droit de les employer ici

n°1295899
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 20:57:04  profilanswer
 

MEI a écrit :

le return 0; manque ouai, mais bon c'est pas +/- automatique s'il manque sur les bon compilateurs ? ;)


 
ben visiblement pas pcq c'est pas corrigé par le mien.
 
qqes questions :  
 

  • quel compilateur utilises-tu pour avoir auto les lignes affichées ? ou bein c'est toi qui les a rajoutés juste pour le post.


  • quel est le diff entre le int main() et le void main () ?

n°1295902
MEI
|DarthPingoo(tm)|
Posté le 31-01-2006 à 21:01:50  profilanswer
 

--> D'apres le post d'Emmanuel Delahaye je dirais qu'il utilise g++.
--> Bah il me semble bien que le void main() n'est tout bonnement pas admis par la norme ANSI et que c'est FORCEMENT int main().

Message cité 2 fois
Message édité par MEI le 31-01-2006 à 21:03:11

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1295906
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 21:10:42  profilanswer
 

MEI a écrit :

--> D'apres le post d'Emmanuel Delahaye je dirais qu'il utilise g++.
--> Bah il me semble bien que le void main() n'est tout bonnement pas admis par la norme ANSI et que c'est FORCEMENT int main().


 
lol bah concernant la norme ANSI c'est justement pour ça qu'on utilise le void main() selon le prof ...  :??:  
 
sinon as-tu testé le code ? parce que moi, que ce soit en ayant corrigé le mien ou bien en ayant copié collé le tiens puis compilé, je reste coincé au même pb... ie qu'il n'affiche aucun des résultats.
 
edit même avec le return (); à la fin

Message cité 3 fois
Message édité par tyler1207 le 31-01-2006 à 21:13:17
n°1295910
Sve@r
Posté le 31-01-2006 à 21:16:07  profilanswer
 

tyler1207 a écrit :

lol bah concernant la norme ANSI c'est justement pour ça qu'on utilise le void main() selon le prof ...  


 
Oh là là... change de prof ou alors fais-toi rembourser...
 
"main()" ne change pas de type au gré du vent (ou du prof)... et son type est "int". C'est comme si on disait "boaf, strlen() est parfois de type float, parfois de type double..."


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1295913
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 21:21:33  profilanswer
 

je cherche pas à défendre l'indéfendable, mais qd je crée un nvx projet ac lcc, j'ai par défaut un code (celui du fichier d'aide je pense) qui s'affiche et il y a un void main () tout au début.  
 
dans les fait que je mette void ou int ça change quoi ?  
 
en tout cas rien au fait que j'arrive tjrs pas à afficher les results !  :D

n°1295920
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 21:36:03  profilanswer
 

dans la structure while, est-ce possible de mettre plusieurs conditions ?

n°1295922
Joel F
Real men use unique_ptr
Posté le 31-01-2006 à 21:37:17  profilanswer
 

tyler1207 a écrit :

lol bah concernant la norme ANSI c'est justement pour ça qu'on utilise le void main() selon le prof ...  :??:  


 
change d'école. et je suis sérieux  :sweat:

n°1295924
MEI
|DarthPingoo(tm)|
Posté le 31-01-2006 à 21:38:10  profilanswer
 

pour le while oui et non ... suffit de faire :  
 
while((expression1) && (expression2))


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1295927
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 21:41:53  profilanswer
 

MEI a écrit :

pour le while oui et non ... suffit de faire :  
 
while((expression1) && (expression2))


 
jdoutais mais j'avais mis ça   :)  

n°1295931
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 21:44:42  profilanswer
 

Joel F a écrit :

change d'école. et je suis sérieux  :sweat:


 
jtiens à préciser que je ne suis pas dans une école d'ing d'info, le C est un outil moyennement important dans ce que je fais. Donc changer d'école pour ça hein  :p

n°1295932
MEI
|DarthPingoo(tm)|
Posté le 31-01-2006 à 21:45:58  profilanswer
 

T'es dans quel ecole et spécialité par curiosité ?


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1295935
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 21:51:18  profilanswer
 

Ismans, méca et matériaux
 
le C me servira un petit peu pour faire des bacon sous samcef.  
 
mais disons que j'aime pas mal l'info (bien qu'en prog pure je n'ai pas de connaissances particulières mis à part le html... c'est dire) et que ça me gène pas du tout de faire plus qd mes cours croisent ce domaine. (on est d'accord, je débute en C)

n°1295937
Emmanuel D​elahaye
C is a sharp tool
Posté le 31-01-2006 à 21:55:19  profilanswer
 

tyler1207 a écrit :

  • quel compilateur utilises-tu pour avoir auto les lignes affichées ? ou bein c'est toi qui les a rajoutés juste pour le post.

C'est le forum. Quand tu utilises les balises

[code=C] et [/code]


Citation :

  • quel est le diff entre le int main() et le void main () ?

http://mapage.noos.fr/emdel/notes.htm#typemain


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1295938
Joel F
Real men use unique_ptr
Posté le 31-01-2006 à 21:55:28  profilanswer
 

HTML != programmation :o
 
et même si c'ets pour faire peu de C, c'est aps une raison d'en faire du moche :o

n°1295941
MEI
|DarthPingoo(tm)|
Posté le 31-01-2006 à 21:57:16  profilanswer
 

Voilà une version C++ qui marche et qui fait 3x moins de ligne. On devrais pouvoir s'en inspirer pour faire une version C qui marche je pense. Comme je n'ai jamais codé en C je suis pas terrible terrible avec les "chaine de caractère" dans ce language.
 

Code :
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4. #include <string>
  5. using std::string;
  6.  
  7. struct etudiant
  8. {
  9.     string nom;
  10.     string prenom;
  11.     float note;
  12. };
  13.  
  14. int main()
  15. {
  16. int id;
  17. float max = 0;
  18. float somme = 0;
  19. const int TAILLE = 3;
  20. etudiant classe[TAILLE];
  21.  
  22.     for (int i = 0 ; i < TAILLE ; i++)
  23.     {
  24.         cout << "\nEleve numero " << i << " : ";
  25.         cout << "\nVeuillez saisir le nom : ";
  26.         cin >> classe[i].nom;
  27.         cout << "Veuillez saisir le prenom : ";
  28.         cin >> classe[i].prenom;
  29.         cout << "Veuillez saisir la note : ";
  30.         cin >> classe[i].note;
  31.         if (classe[i].note > max)    
  32.         {
  33.             max = classe[i].note;
  34.             id = i;
  35.         }
  36.         somme += classe[i].note;
  37.     }
  38.     cout << "\nLa meilleure note est " << max;
  39.    cout << " et a ete obtenue par " << classe[id].nom << " " << classe[id].prenom;
  40.     cout << "\nLa moyenne est de " << somme / TAILLE;
  41.     cout << endl;
  42.  
  43. return 0;
  44. }


Message édité par MEI le 31-01-2006 à 22:02:09

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1295942
Emmanuel D​elahaye
C is a sharp tool
Posté le 31-01-2006 à 21:57:36  profilanswer
 

MEI a écrit :

--> D'apres le post d'Emmanuel Delahaye je dirais qu'il utilise g++.


Pour compiler du C? Ce serait suicidaire ! Non c'est bien gcc avec les bons reglages :  
 
"Once again with feelin'"


-O2 -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int
-Werror-implicit-function-declaration -Wmain -Wparentheses
-Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused
-Wuninitialized -Wunknown-pragmas  -Wfloat-equal -Wundef
-Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings
-Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes
-Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn
-Wformat -Wmissing-format-attribute -Wno-deprecated-declarations
-Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long
-Wunreachable-code

Message cité 1 fois
Message édité par Emmanuel Delahaye le 31-01-2006 à 21:58:36

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1295944
tyler1207
cowan, basagotia, lenosky...
Posté le 31-01-2006 à 21:58:19  profilanswer
 

Joel F a écrit :

HTML != programmation :o
 
et même si c'ets pour faire peu de C, c'est aps une raison d'en faire du moche :o


 
c'est pour ça que y'a un "....c'est dire" juste après  :o  
 
pour le reste, entièrement d'accord, je disais juste que c'est pas une raison pour changer d'école !

n°1295945
gocho
Posté le 31-01-2006 à 21:59:55  profilanswer
 

alors le

Code :
  1. int main()

c'est le prototype de la fonction!
Main doit retourner un int, c'est comme ca.
 
edit: [:grilled]by emmanuel et en plus il a le lien [:sisicaivrai]
 
Si tu veux le prototype complet c'est meme

Code :
  1. int main (int argc, char * argv[])


mais bon quand tu t'en sers pas des arguments tu peux te contenter de  

Code :
  1. int main (void)


 
Pour ce qui est de return, c'est pas  

Code :
  1. return();


mais  

Code :
  1. return 0;


 
la methode main demande que l'on retourne un entier donc c'est ce que tu fais, le 0 est en general employe pour dire que tout s'est bien passé.
Apres tu peux aussi mettre  
 

Code :
  1. return EXIT_SUCCESS;


qui fera la meme chose (EXIT_SUCCESS etant une constante definie dans stdlib.h me semble t-il ;))

Message cité 1 fois
Message édité par gocho le 31-01-2006 à 22:02:34
n°1295946
MEI
|DarthPingoo(tm)|
Posté le 31-01-2006 à 22:01:00  profilanswer
 

Emmanuel Delahaye a écrit :

Pour compiler du C? Ce serait suicidaire ! Non c'est bien gcc avec les bons reglages :  
 
"Once again with feelin'"


-O2 -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int
-Werror-implicit-function-declaration -Wmain -Wparentheses
-Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused
-Wuninitialized -Wunknown-pragmas  -Wfloat-equal -Wundef
-Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings
-Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes
-Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn
-Wformat -Wmissing-format-attribute -Wno-deprecated-declarations
-Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long
-Wunreachable-code



-Wall ne serait-il pas plus rapide ?  :heink:


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1295948
Joel F
Real men use unique_ptr
Posté le 31-01-2006 à 22:01:34  profilanswer
 


-O2 -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int
-Werror-implicit-function-declaration -Wmain -Wparentheses
-Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused
-Wuninitialized -Wunknown-pragmas  -Wfloat-equal -Wundef
-Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings
-Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes
-Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn
-Wformat -Wmissing-format-attribute -Wno-deprecated-declarations
-Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long
-Wunreachable-code


 
pas -O3 ??

n°1295949
Joel F
Real men use unique_ptr
Posté le 31-01-2006 à 22:01:58  profilanswer
 

MEI a écrit :

-Wall ne serait-il pas plus rapide ?  :heink:


Non, car il test pour de strucs un peu cons qui cherchent à rien :o

n°1295950
Emmanuel D​elahaye
C is a sharp tool
Posté le 31-01-2006 à 22:05:58  profilanswer
 

tyler1207 a écrit :

lol bah concernant la norme ANSI c'est justement pour ça qu'on utilise le void main() selon le prof ...  :??:


Ce prof est nul.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1295953
Joel F
Real men use unique_ptr
Posté le 31-01-2006 à 22:08:52  profilanswer
 


j'ai déjà fait la remarque  :whistle:

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  structure if - else (débutant)

 

Sujets relatifs
Débutant...Structure & Actualisation d'un site ? a votre avis ?
clé sympa du registre (debutant)gro gro debutant cherche topic
commande registre windows (debutant ) :)Pblme de connexion à la BDD (gros débutant...)
HYPER DEBUTANT Page Web très très simplifiémodifier le registre windows en batch ( debutant )
Maintien rapide aisée d'une arborescence : quelle structure choisir ?Question de débutant
Plus de sujets relatifs à : structure if - else (débutant)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR