Variable texte en langage C

Résolu
chris-asjeme Messages postés 829 Statut Membre -  
chris-asjeme Messages postés 829 Statut Membre -
Bonjour à tous,

Je suis débutant en langage C et j'ai un exercice à faire pour mon cours de DAIGL. Je dois écrire le programme permettant de faire le calcul de l'impôt sur le revenu d'un foyer en fonction d'informations saisies par l'utilisateur.
Mais le problème c'est que je ne sais pas comment déclarer mes variables de texte et ensuite permettre leur saisie par l'utilisateur.

J'ai fais l'algo correspondant :

Algorithme Impôt
Variable Rev_impos , montant , nb_parts , quotient_familial : Réel ;
Nom_Contrib , Etat_civil , Autre_foyer : Chaîne ;
nb_pers_charge , X : Entier ;
Début
  |  Répéter
  |    |  Afficher ( 'Nom du contribuable : ' ) ;
  |    |  Saisir ( 'Nom_Contrib' ) ;
  |    |  Afficher ( 'Revenu imposable : ' ) ;
  |    |  Saisir ( 'Rev_impos' ) ;
  |    |  Afficher ( 'Nombre de personnes à charge : ' ) ;
  |    |  Saisir ( 'nb_pers_charge' ) ;
  |    |  Afficher ( 'Etat civil ( M , V , C , D ) : ' ) ;
  |    |  Saisir ( 'Etat_civil' ) ;
  |    |  Si ( Etat_civil = "M" )
  |    |    |  nb_parts <- 2 ;
  |    |    |  Si ( nb_pers_charge > 1 )
  |    |    |    |  Pour X <- 1 à nb_pers_charge Faire
  |    |    |    |    |  nb_parts <- nb_parts + 1 ;
  |    |    |    |  FinPour
  |    |    |  Sinon
  |    |    |    |  nb_parts <- 2.5 ;
  |    |    |  FinSi
  |    |  Sinon
  |    |    |  nb_parts <- 1 ;
  |    |    |  Si ( nb_pers_charge > 1 )
  |    |    |    |  Pour X <- 1 à nb_pers_charge Faire
  |    |    |    |    |  nb_parts <- nb_parts + 1 ;
  |    |    |    |  FinPour
  |    |    |  Sinon
  |    |    |    |  nb_parts <- 2.5 ;
  |    |    |  FinSi
  |    |  FinSi
  |    |  quotient_familial <- Rev_impos / nb_parts ;
  |    |  Si ( quotient_familial <= 5832 )
  |    |    |  montant <- 0 ;
  |    |  Sinon
  |    |    |  Si ( quotient_familial <= 11673 )
  |    |    |    |  montant <- ( Rev_impos * 0.055 ) - ( 321.86 * nb_parts ) ;
  |    |    |  Sinon
  |    |    |    |  Si ( quotient_familial <= 25926 )
  |    |    |    |    |  montant <- ( Rev_impos * 0.14 ) - ( 1314.07 * nb_parts ) ;
  |    |    |    |  Sinon
  |    |    |    |    |  Si ( quotient_familial <= 69505 )
  |    |    |    |    |    |  montant <- ( Rev_impos * 0.30 ) - ( 5462.23 * nb_parts ) ;
  |    |    |    |    |  Sinon
  |    |    |    |    |    |  montant <- ( Rev_impos * 0.40 ) - ( 12412.73 * nb_parts ) ;
  |    |    |    |    |  FinSi
  |    |    |    |  FinSi
  |    |    |  FinSi
  |    |  FinSi
  |    |  Afficher ( Nom_contrib , ' doit payer ' , montant , ' € d'impôts.' ) ;
  |    |  Afficher ( 'Autre foyer ( O / N ) ? : ' ) ;
  |    |  Saisir ( 'Autre_foyer' ) ;
  |  Jusqu'à Autre_foyer = "N"
Fin


Dans mon programme en C j'ai déclaré mes variables int et float mais me manque le texte.
Pareil pour la saisie, j'ai mes scanf avec mes %d et mes %f mais pour le texte ?

Merci d'avance
Chris
A voir également:

4 réponses

Bryan251 Messages postés 42 Statut Membre 9
 
petite question : cet Algorithme sert à quoi ?
0
chris-asjeme Messages postés 829 Statut Membre 93
 
à montrer à quoi je veux arriver. Dans mon exo on me demande de faire l'algo avant le programme en C. Donc je l'ai fais mais je suis bloqué sur la déclaration des variables texte en C et leur saisie par l'utilisateur.
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Bonjour,

Pour déclarer une variable, c'est type nom;
Par exemple : int toto; pour déclarer un entier.
Pour un texte, c'est plus compliqué car il n'existe pas de type à proprement parler.
Il faut passer par un tableau de caractère. Par exemple char tab[50]; permettra à l'utilisateur de taper une phrase de 49 caractères.
Pour que l'utilisateur saisisse la variable : un simple fgets(tab, sizeof tab, stdin); fera l'affaire.
Il ne faut pas oublier que tab contiendra également le code de la touche entrée.

Cdlt,
0
chris-asjeme Messages postés 829 Statut Membre 93
 
merci bien. Donc je pense que je vais apprendre ça Mercredi en cours. J'ai voulus avancer sur mon exercice mais c'est pas une bonne idée ^^

Enfin merci quand même et bonne fin de journée.
Chris
0