Aller au contenu

"C Projets" qui vont vite


Messages recommandés

saming Membre 10 messages
Forumeur balbutiant‚ 22ans
Posté(e)

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 ...

					   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

 #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

 #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 !

Modifié par saming

Partager ce message


Lien à poster
Partager sur d’autres sites
Annonces
Maintenant
koubo Membre 8 726 messages
chat bleu‚ 33ans
Posté(e)

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à. :snif:

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 :snif:

edit : le switch me paraît plus approprié que le elseif pour ton programme

Modifié par koubo

Partager ce message


Lien à poster
Partager sur d’autres sites
saming Membre 10 messages
Forumeur balbutiant‚ 22ans
Posté(e)

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 !

#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 :

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 ;-) ! )

#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 !

Partager ce message


Lien à poster
Partager sur d’autres sites
koubo Membre 8 726 messages
chat bleu‚ 33ans
Posté(e)

<< 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

Partager ce message


Lien à poster
Partager sur d’autres sites
saming Membre 10 messages
Forumeur balbutiant‚ 22ans
Posté(e)

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 !

Partager ce message


Lien à poster
Partager sur d’autres sites
Méthylbro VIP 1 038 messages
Ours des Pyrénées 100% AOC‚
Posté(e)

12ans et tu te met au dev ! Et en C en plus !

je suis impréssionné.

Partager ce message


Lien à poster
Partager sur d’autres sites
Annonces
Maintenant

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant


×