|
|
jeudi 24 avril 2008 à 19:34
Message
#1
|
|
|
Bonjour !
Je commence , du haut de mes 12 ans , à programmer en C . Evidemment cette entreprise n'est peut-être pas très raisonnable pour mon âge . D'ailleurs , je pense être le seul à savoir ce qu'est Visual Basic ou le C/C++ . Mais je veux avancer , et ce , en étant attentif à tout conseil ou remarque ... Je me heurte à des problèmes capitaux à mon stade d'apprentissage . Car je commence comme je l'ai dit et toute base non consolidée d'enseignement , s'effondre à un enseignement supérieur . Ces problèmes concernent les accolades ( ... pas sûr que cela s'écrive ainsi ) et j'ai aussi du mal à me mettre au SWITCH au profit du ELSE IF . Sauf que , je ne comprends vraiment pas les erreurs trouvées par le compileur . J'aimerais comprendre ... Code if(r1==2 && r2==4 && r3==6); { printf("\nBravo ! Tu as reussi !"); printf("Tu connais tes tables ... "); } else { printf("Bouh ! "); printf("Tu ne connais pas tes tables ! "); } Ce morceau de code provient d'un logiciel MS-DOS en construction. Ici l'erreur est : syntax error before "else" ou , pour les stricts francophones , Erreur de syntaxe avant "else" Je ne saisis pas . L'accolade est respectée ... il y a bien le ";" ... Qu'aurais-je oublié ? J'essaye actuellement le switch avant de vous donner un code ( non-entier ... ) qui , peut-être , va fonctionner ( ... va pour le code entier ). Si une quelqu'onque erreur est détectée par vos soins , je vous serais reconnaisant de me l'indiquer . Sur ce je vais passer ces lignes de code au switch , et voir si il y aurait un quelqu'onque changement ... Merci de votre attention , et au revoir ! ------------------------------------15 minutes plus tard------------------------------------------------- Essayant actuellement le switch , je pense que vu mon choix ( un logiciel de révision de tables ) , le else if est beaucoup mieux approprié , non ? Qu'en pensez vous ? P.S.: -Code complet ( en construction ) en switch Code #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { long choix_table, r1, r2, r3, r4 ,r5 ,r6 ,r7 , r8 , r9 ,r10; printf("Bonjour ! Choisis la table que tu veux reviser ...\n"); printf(">2<\n"); printf(">3<\n"); printf(">4<\n"); printf(">5<\n"); printf(">6<\n"); printf(">7<\n"); printf(">8<\n"); printf(">9<\n"); printf("Ton choix : "); scanf("[%ld]\n", &choix_table); switch(choix_table==2); { printf("Ecrivez les resultats des operations suivantes dans l'ordre espaces : \n"); printf(" 1 X 2 , 2 X 2 , 3 X 2 ... \n"); printf(" ... 4 X 2 , 5 X 2 , 6 X 2 ... \n"); printf(" ... 7 X 2 , 8 X 2 , 9 X 2 ... \n"); printf(" ... et 10 X 2 \n"); printf("Exemple : 8 52 546 , etc ... "); scanf(" %ld %ld %ld \n", &r1 ,&r2 ,&r3); switch (r1 && r2 && r3) { case 2 , 4 , 6 : printf("\nBravo ! Tu as reussi !"); printf("Tu connais tes tables ... "); break; default : printf("Bouh ! "); printf("Tu ne connais pas tes tables ! "); break; } } system("PAUSE"); return 0; } - Code complet en else if Code #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { long choix_table, r1, r2, r3, r4 ,r5 ,r6 ,r7 , r8 , r9 ,r10; printf("Bonjour ! Choisis la table que tu veux reviser ...\n"); printf(">2<\n"); printf(">3<\n"); printf(">4<\n"); printf(">5<\n"); printf(">6<\n"); printf(">7<\n"); printf(">8<\n"); printf(">9<\n"); printf("Ton choix : "); scanf("[%ld]\n", &choix_table); switch(choix_table==2); { printf("Ecrivez les resultats des operations suivantes dans l'ordre espaces : \n"); printf(" 1 X 2 , 2 X 2 , 3 X 2 ... \n"); printf(" ... 4 X 2 , 5 X 2 , 6 X 2 ... \n"); printf(" ... 7 X 2 , 8 X 2 , 9 X 2 ... \n"); printf(" ... et 10 X 2 \n"); printf("Exemple : 8 52 546 , etc ... "); scanf(" %ld %ld %ld \n", &r1 ,&r2 ,&r3); if (r1==2 && r2==4 && r3==6); { printf("\nBravo ! Tu as reussi !"); printf("Tu connais tes tables ... "); } else; { printf("Bouh ! "); printf("Tu ne connais pas tes tables ! "); } } system("PAUSE"); return 0; } Voilà . Merci beaucoup ! Ce message a été modifié par saming - jeudi 24 avril 2008 à 19:35. -------------------- #include <stdio.h>
#include <stdlib.h> int main(int argc, char *argv[]) { long choix; printf("C forever !"); printf("ForumFr Forever !"); printf("TrackMania Nations Forever !"); printf("Oui ? ["); scanf("%ld]", &choix); if (choix==1); { printf("Merci !"); } else; { printf("Boarf..."); } system("PAUSE"); return 0; } |
|
|
|
|
Sponsors
|
À l'instant
|
|
|
|
jeudi 24 avril 2008 à 21:03
Message
#2
|
|
|
salut,
dans la première partie de ton code, tu mets un ; après le if. Je pense que l'erreur vient de là. la structure c'est : if(condition) { instructions; } else { instructions; } sinon pour le switch , il faut pas mettre de condition dedans la structure c'est : switch(ta_variable) { case valeur_1 : instructions; break; case valeur_2 : instructions;break; } donc dans ton cas c'est switch(choix_table) { case 2 : ... etc. voilà. pour te faciliter la vie, tu peux regarder du côté de "cin" et "cout" à la place de printf et compagnie, ça devrait te faciliter la vie... enfin si tu veux faire du c++, pas juste du c edit : le switch me paraît plus approprié que le elseif pour ton programme Ce message a été modifié par koubo - jeudi 24 avril 2008 à 21:05. -------------------- ![]() |
|
|
|
|
vendredi 25 avril 2008 à 13:20
Message
#3
|
|
|
Merci pour tous ces conseils :-) !
Par contre je n'aurais pas fini le C jusqu'à une date , inprécise hein , hum , ultérieure à l'été 2008 ... Donc , OK , j'essaye actuellement l'effacement du ";" ... Ça marche ! Code #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { long choix_table, r1, r2, r3, r4 ,r5 ,r6 ,r7 , r8 , r9 ,r10; printf("Bonjour ! Choisis la table que tu veux reviser ...\n"); printf(">2<\n"); printf(">3<\n"); printf(">4<\n"); printf(">5<\n"); printf(">6<\n"); printf(">7<\n"); printf(">8<\n"); printf(">9<\n"); printf("Ton choix : "); scanf("[%ld]\n", &choix_table); if(choix_table==2) { printf("Ecrivez les resultats des operations suivantes dans l'ordre espaces deux fois: \n"); printf(" 1 X 2 , 2 X 2 , 3 X 2 ... \n"); printf(" ... 4 X 2 , 5 X 2 , 6 X 2 ... \n"); printf(" ... 7 X 2 , 8 X 2 , 9 X 2 ... \n"); printf(" ... et 10 X 2 \n"); printf("Exemple : 8 9 2 , etc ... "); scanf(" %ld %ld %ld \n", &r1 ,&r2 ,&r3); if (r1==2 && r2==4 && r3==6) { printf("\nBravo ! Tu as reussi ! "); printf("Tu connais tes tables ... "); } else { printf("Bouh ! "); printf("Tu ne connais pas tes tables ! "); } } system("PAUSE"); return 0; } Bon par contre , il faut insister avec les espaces ... mais ça marche à merveille ! Alors , j'ai crée entre temps un calculateur de ... l'année actuelle ... ( WTF ? ) Depuis que j'ai intégré la condition : Code if(annee_de_naissance << 1900 || annee_actuelle << 2000 || age >> 99) printf("Attention , ne trichez plus !\n"); printf("Je vous ai a l'oeil !\n\n"); system("PAUSE"); return 0; ... le programme "bugge" et indique systématiquement que je triche dans les dates ... Bon , le code complet ... ( ah , c'est vite fait hein ! 1/4 heure maximum ;-) ! ) Code #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { long age, annee_de_naissance, annee_actuelle; printf("Bonjour ! Merci de repondre a ces questions ... \n"); printf("Quel age avez-vous ? "); scanf("%ld", &age); printf("Ah ! Vous avez donc %ld ans !\n", age); printf("Quelle est votre annee de naissance ? "); scanf("%ld", &annee_de_naissance); printf("Ah ! Vous etes donc ne(e) en %ld !\n", annee_de_naissance); printf("Donc , pour resumer vous etes ne(e) en %ld et vous avez %ld ans !\n", annee_de_naissance, age); annee_actuelle = annee_de_naissance + age + 1; printf("Ca et ca , ca fait ... nous sommes alors en %ld ! \n", annee_actuelle); printf("Merci d'avoir utilise ce programme !\n\n"); if(annee_de_naissance << 1900 || annee_actuelle << 2000 || age >> 99) printf("Attention , ne trichez plus !\n"); printf("Je vous ai a l'oeil !\n\n"); system("PAUSE"); return 0; system("PAUSE"); return 0; } Et les aperçus ( SHUP 0.23 ): Donc démarrage : Bonjour ! Merci de repondre a ces questions ... Quel age avez-vous ? _ J'indique mon âge : Bonjour ! Merci de repondre a ces questions ... Quel age avez-vous ? 12_ L'année de ma naissance : Bonjour ! Merci de repondre a ces questions ... Quel age avez-vous ? 12 Ah ! Vous avez donc 12 ans ! Quelle est votre annee de naissance ? 1995_ Et voilà ... : Bonjour ! Merci de repondre a ces questions ... Quel age avez-vous ? 12 Ah ! Vous avez donc 12 ans ! Quelle est votre annee de naissance ? 1995_ Ah ! Vous etes donc ne(e) en 1995 ! Donc , pour resumer vous etes ne(e) en 1995 et vous avez 12 ans ! Ca et ca , ca fait ... nous sommes alors en 2008 ! Merci d'avoir utilise ce programme ! Attention , ne trichez plus ! Je vous ai a l'oeil ! Appuyez sur une touche pour continuer ..._ Alors que je suis sincère , que je n'ai pas plus de 99 ans , que je ne suis pas né avant 1900 et que nous sommes bien après l'an 2000 ! Là je ne comprends RIEN , strictement . Merci encore koubo pour le tip ! -------------------- #include <stdio.h>
#include <stdlib.h> int main(int argc, char *argv[]) { long choix; printf("C forever !"); printf("ForumFr Forever !"); printf("TrackMania Nations Forever !"); printf("Oui ? ["); scanf("%ld]", &choix); if (choix==1); { printf("Merci !"); } else; { printf("Boarf..."); } system("PAUSE"); return 0; } |
|
|
|
|
vendredi 25 avril 2008 à 17:12
Message
#4
|
|
|
<< ne correspond pas à inférieur ou égal de même pour >>
inférieur ou égal <= supérieur ou égal >= strict inférieur < strict supérieur > sinon, petit lien qui devrait t'apprendre les bases et t'occuper un moment : cours c -------------------- ![]() |
|
|
|
|
lundi 05 mai 2008 à 12:03
Message
#5
|
|
|
Ahahah on part de la même base je vois ^^ !
Justement je viens ici parce que ce n'était pas très clair :-) merci quand même ;-) ! Et encore merci pour le tip ! -------------------- #include <stdio.h>
#include <stdlib.h> int main(int argc, char *argv[]) { long choix; printf("C forever !"); printf("ForumFr Forever !"); printf("TrackMania Nations Forever !"); printf("Oui ? ["); scanf("%ld]", &choix); if (choix==1); { printf("Merci !"); } else; { printf("Boarf..."); } system("PAUSE"); return 0; } |
|
|
|
|
samedi 05 juillet 2008 à 11:07
Message
#6
|
|
|
12ans et tu te met au dev ! Et en C en plus !
je suis impréssionné. -------------------- Méthylbro, Développeur Web
N'oubliez pas de lire mon Tutoriel sur la POO avec PHP : Introduction à la POO avec PHP Adopte un Mec ----------------------- ![]() ----------------------- |
|
|
|
|
|
Version bas débit | Nous sommes le : vendredi 05 septembre 2008 à 06:55 |