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

  FORUM HardWare.fr
  Programmation
  C

  [C] [Débutant] Je suis bloqué sur une erreur de syntaxe ....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] [Débutant] Je suis bloqué sur une erreur de syntaxe ....

n°855930
ze nerdz
gné ?
Posté le 22-09-2004 à 20:28:00  profilanswer
 

... et je n arrive pas a la corriger !
 

Code :
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.  /*DEBUT DES DECLARATIONS*/
  5.   /*DONNEES D'ENTREE*/
  6.    /*variables d'entrée initialisées*/
  7.    /*variables d'entrée non initialisées*/
  8.    int age;
  9.    int nbAnneesPermis;
  10.    int nbAccidents;
  11.    int nbMoisCompagnie;
  12.   /*VARIABLES RESULTATS*/
  13.   char tarif;
  14.   /*VARIABLES AUXILLIAIRES*/
  15.  /*DEBUT DES INSTRUCTIONS*/
  16. printf("\n debut du programme" );
  17.  /*INITIALISATION DES VARIABLES D'ENTREE*/
  18.  printf("\n age : " );
  19.  scanf("%d",&age);
  20.  printf("\n nombre d'année(s) avec le permis : " );
  21.  scanf("%d",&nbAnneesPermis);
  22.  printf("\n nombre d'accident(s) : " );
  23.  scanf("%d",&nbAccidents);
  24.  printf("\n nombre de mois dans la compagnie : " );
  25.  scanf("%d",&nbMoisCompagnie);
  26.  /*TRAITEMENT*/
  27.   /*initialisation des variables auxilliaires*/
  28.   /*corps du traitement*/
  29.   if (age<25 && permis<2){
  30.    if(nbAccidents==0){
  31.     tarif="rouge";
  32.    }
  33.    else{
  34.     tarif="refusé";
  35.    }
  36.   }
  37.   if ((age<25 && permis>=2)||(age>=25 && permis<2)){
  38.    if(nbAccidents==0){
  39.     tarif="orange";
  40.    }
  41.    if(nbAccidents==1){
  42.     tarif="rouge";
  43.    }
  44.    if(nbAccidents>=2){
  45.     tarif="refusé";
  46.    }
  47.   }
  48.   if (age>=25 && permis>=2){
  49.    if(nbAccidents==0){
  50.     tarif="vert";
  51.    }
  52.    if(nbAccidents==1){
  53.     tarif="orange";
  54.    }
  55.    if(nbAccidents==2){
  56.     tarif="rouge";
  57.    }
  58.    if(nbAccidents>=3){
  59.     tarif="refusé";
  60.    }
  61.   }
  62.   if(tarif!="refusé" && nbMoisCompagnie>12){
  63.    tarif="bleu";
  64.   }
  65.   /*affectation des variables resultats*/
  66.  /*AFFICHAGE DES RESULTATS*/
  67.  printf("\n Votre tarif est : %c",tarif);
  68. printf("\n fin du programme" );
  69. return(0);
  70. }


 
l'eerreur vient en fait de ma variable de type "char" tarif (ligne 19).
Je n arrive pas a affecter une chaine de charactère a cette variable !
 
 
merci d avance pour votre aide !
 
 :hello:


Message édité par ze nerdz le 22-09-2004 à 20:29:24
mood
Publicité
Posté le 22-09-2004 à 20:28:00  profilanswer
 

n°855933
WhatDe
Posté le 22-09-2004 à 20:31:10  profilanswer
 

char *tarif;

n°855937
sircam
I Like Trains
Posté le 22-09-2004 à 20:32:30  profilanswer
 

On sent que c'est la rentrée :)


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°855938
ze nerdz
gné ?
Posté le 22-09-2004 à 20:32:55  profilanswer
 

WhatDe a écrit :

char *tarif;


Merci pour ta réponse : mais je reste sur ma faim ... :D que signifie l'etoile devant le nom de variable ?

n°855941
WhatDe
Posté le 22-09-2004 à 20:34:06  profilanswer
 

ze nerdz a écrit :

Merci pour ta réponse : mais je reste sur ma faim ... :D que signifie l'etoile devant le nom de variable ?


Que tarif est un pointeur de char. Informes-toi sur les pointeurs.

n°855942
torpe23
Posté le 22-09-2004 à 20:35:24  profilanswer
 

tu déclares tarif en tant que caractère. Cette variable ne peut donc contenir qu'un caractère. Pour avoir une chaine de caractère, il faut plutot que tu déclares un tableau

Code :
  1. char tarif[10];


Ensuite, pour affecter une chaine de caractère à cette nouvelle variable, tu dois passser par une fonction ("strcpy()" ) qui est déclarée dans la librairie "string.h". On arrive alors au code suivant:

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(void){
  4.   char tarif[10];
  5.    ...
  6.    strcpy(tarif,"refusé" );
  7.    ...
  8. }


 
Maintenant, pour afficher, tu dois utiliser le format "%s" de printf, ce qui te donne:

Code :
  1. printf("\n Votre tarif est : %s",tarif);


 
Enfin, un conseil, emprunte un bouquin de C (genre Kernighan et Ritchie) et potasse!


Message édité par torpe23 le 22-09-2004 à 20:35:59
n°855943
Lam's
Profil: bas.
Posté le 22-09-2004 à 20:36:26  profilanswer
 

Attention, ligne 85, il faut mettre "%s" au lieu de "%c".
 
Pour le reste, je vais pas te faire un cours de pointeurs, parce que moi-même, je ne sais pas trop à quoi ça sert... :whistle:

n°855952
ze nerdz
gné ?
Posté le 22-09-2004 à 20:44:44  profilanswer
 

Merci pour vos réponse ca fait plaisir de savoir qu on ne vous laisse pas tomber !
 
par contre je ne sais pas koi mettre en rapport avec mon niveau ...l etoile ou le nombre de charactères ...

n°855954
ze nerdz
gné ?
Posté le 22-09-2004 à 20:46:45  profilanswer
 

par contre un autre truc qui est un peu HS avec le sujet : je suis a l IUT et on travaille sous debian, et on compile en ligne de commande bash.
Je souhaitais bosser chez moi, mais je n ai pas de linux, il y a moyen de compiler ce programme sous Windows pour qu il apparaisse de la meme facon que sous Linux ? ( en fentre de commande par ex)

n°855955
pains-aux-​raisins
Fatal error
Posté le 22-09-2004 à 20:49:26  profilanswer
 

Telnet power.

mood
Publicité
Posté le 22-09-2004 à 20:49:26  profilanswer
 

n°855956
ze nerdz
gné ?
Posté le 22-09-2004 à 20:51:49  profilanswer
 

J ai actuellement Dev C/C++, qui edit et compile, mais, une fois mon programme compilé, il me créé un .exe qui ne fait absolument rien, .... que puis je faire ?

n°855957
pains-aux-​raisins
Fatal error
Posté le 22-09-2004 à 20:51:57  profilanswer
 

ou mieux, WinAxe pour utiliser les applis X-Window de ton IUT sur ta bécane Windows.

n°855958
pains-aux-​raisins
Fatal error
Posté le 22-09-2004 à 20:53:53  profilanswer
 

ze nerdz a écrit :

J ai actuellement Dev C/C++, qui edit et compile, mais, une fois mon programme compilé, il me créé un .exe qui ne fait absolument rien, .... que puis je faire ?


Ton programme bug, donc en tout bon nerdz qui se doit, il faut que tu le debug... :D

n°855959
ze nerdz
gné ?
Posté le 22-09-2004 à 20:55:42  profilanswer
 

oui mais , comme tu peux le constater, le programme ci dessus n est pas évolué en matiere d interface graphique, donc le pb vient peut etre de la ? je dois en etre a 3 cours de C, donc mes programmes s executait et s affichait sous commandes BASH sous LINUX ...

n°855961
pains-aux-​raisins
Fatal error
Posté le 22-09-2004 à 20:59:22  profilanswer
 

As-tu déjà fait tourner un programme de type "hello world" avec ton Dev C/C++ ?

n°855964
ze nerdz
gné ?
Posté le 22-09-2004 à 21:01:28  profilanswer
 

euh cad jjuste un "printf("hello" );" ?

n°855965
ze nerdz
gné ?
Posté le 22-09-2004 à 21:04:55  profilanswer
 

mmm deja ca c bizarre ... !
 
 

Code :
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.     printf("hello world" );
  5. return(0);
  6. }


 
ca me cree un .exe qui s ouvre et qui se ferme immédiatement ...
 
ca ne me faisait pas ca sous linux ... y a t il qqc a comprendre ?

n°855966
Joel F
Real men use unique_ptr
Posté le 22-09-2004 à 21:09:29  profilanswer
 

.... bordel on l'a expliqué 10000 fois ....
configure ton Command Line proprement.

n°855968
tet2neu
emmerdeur
Posté le 22-09-2004 à 21:10:55  profilanswer
 

ze nerdz a écrit :

mmm deja ca c bizarre ... !
 
 

Code :
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.     printf("hello world" );
  5. return(0);   
  6. }


 
ca me cree un .exe qui s ouvre et qui se ferme immédiatement ...
 
ca ne me faisait pas ca sous linux ... y a t il qqc a comprendre ?


Tu mets un getchar() à la fin [:jkley]

n°855970
Joel F
Real men use unique_ptr
Posté le 22-09-2004 à 21:11:33  profilanswer
 

NON pas de getchar, il configure sa console DOS et point barre !

n°855971
ze nerdz
gné ?
Posté le 22-09-2004 à 21:11:57  profilanswer
 

Joel F a écrit :

.... bordel on l'a expliqué 10000 fois ....
configure ton Command Line proprement.


 
merci pour ton intervention mais  je pense que tu n a pas vu que gt débutant

n°855972
Joel F
Real men use unique_ptr
Posté le 22-09-2004 à 21:12:34  profilanswer
 

et alors ? ca empeche quoi ?
 
y a une fonction recherche sur le forum, ce probleme est abordée 15 fois par semaine ...

n°855986
pains-aux-​raisins
Fatal error
Posté le 22-09-2004 à 21:22:27  profilanswer
 

calmos :o

n°855995
tet2neu
emmerdeur
Posté le 22-09-2004 à 21:38:28  profilanswer
 

Ouais Carlos !
 
http://www.musicarlos.com/images/jap/11.jpg
 
Je suis dehors...


Message édité par tet2neu le 22-09-2004 à 21:39:17
n°856650
Slay
Posté le 23-09-2004 à 18:20:56  profilanswer
 

met un
getch();  
 
a la fin, ca oblige l'utilisateur a appuyer sur une touche pour arrêter le programme
 
PS : soyez calme quoi , il peut quand meme commencer par mettre un getch(); pour commencer , voir si son prog tourne etc , mais c'est sur qu'il faudra le configuré .


Message édité par Slay le 23-09-2004 à 18:22:38
mood
Publicité
Posté le   profilanswer
 


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

  [C] [Débutant] Je suis bloqué sur une erreur de syntaxe ....

 

Sujets relatifs
[.NET] Création d'un nouvel élément : message d'erreur ActiveXErreur avec librairie Pear
[PHP - Debutant] Comment telecharger un fichier?debutant , comment executer un fichier php
Débutant en php, probleme dans module de login...Ecriture dans un fichier : erreur de retour à la ligne [résolu]
Débutant en C[JLex/CUP] Je cherche un tuto pour débutant ultra débutant
Erreur ASP ODBC[Postgresql] Erreur étrange sur la création d'une procédure
Plus de sujets relatifs à : [C] [Débutant] Je suis bloqué sur une erreur de syntaxe ....


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