Variable texte en langage C

Résolu/Fermé
chris-asjeme Messages postés 780 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 22 décembre 2014 - 1 nov. 2010 à 13:26
chris-asjeme Messages postés 780 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 22 décembre 2014 - 1 nov. 2010 à 15:01
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

4 réponses

Bryan251 Messages postés 31 Date d'inscription mardi 22 juin 2010 Statut Membre Dernière intervention 1 novembre 2010 9
Modifié par Bryan251 le 1/11/2010 à 13:28
petite question : cet Algorithme sert à quoi ?
0
chris-asjeme Messages postés 780 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 22 décembre 2014 93
1 nov. 2010 à 13:33
à 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 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
1 nov. 2010 à 14:31
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 780 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 22 décembre 2014 93
1 nov. 2010 à 15:01
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