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

  FORUM HardWare.fr
  Programmation
  C

  [c] Probleme afficher valeur correcte tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c] Probleme afficher valeur correcte tableau

n°2215011
Thaybow7
Posté le 04-01-2014 à 23:00:51  profilanswer
 

Bonjour
J'espère être dans la bonne section car ma requête se pose par rapport au langage C.
Je suis débutant, soyez indulgent  :sweat: . Je dois rendre un travail mais je bloque.
Mon programme ne m'affiche pas les valeurs que je souhaite dans mon tableau.

Code :
  1. int main(void) {
  2. //A)Déclaration des données
  3. //a)Données en entrées
  4. float temperature_min;            // temperature encodées par l'utilisateur, réel
  5. float temperature_max;
  6. int langue;
  7. int unite;              //choix de l'opérateur pour le choix de la langue et de l'unité, caractère
  8. int tab1[12];
  9. int tab2[12];
  10. int tab3[12];
  11. int tab4[12];
  12. double far;
  13. int compteuR;
  14. //b)Données modifiées
  15. double position_minima;          //La position du minima
  16. double position_maxima;          //La position du maxima
  17. int compteur;
  18. int compteur2;
  19.         //compteur d'itération pour le tableau des températures maximales, entier
  20. char *mois_anglais[12]={"January ", "February ", "March ", "April ", "May ", "June ", "July ", "August ", "September ", "October ", "November ", "December "};
  21.               /*les mois en anglais, chaîne de caractère =("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", December" )*/
  22. char *mois_fr[12]={"Janvier ", "Fevrier ", "Mars ", "Avril ", "Mai ", "Juin ", "Juillet ", "Aout ", "Septembre ", "Octobre ", "Novembre ", "Decembre "};
  23.               /*les mois en français, chaîne de caractères = ("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre" )*/
  24. //c)Données résultats
  25. double minima;             //le minima de l'année, réel
  26. double maxima;             //le maxima de l'année, réel
  27. //d)Données de travail
  28. char MSG_SAISIE_TEMP_MIN[255]="Veuillez entrer les temperatures minimales pour chaque mois de l'annee: " ;
  29.               //Message de saisie pour les températures min. de l'année
  30. char MSG_SAISIE_TEMP_MAX[255]="Veuillez entrer les temperatures maximales pour chaque mois de l'annee: " ;
  31.               //Message de saisie pour les températures max. de l'année
  32. char MSG_SAISIE_UNITE[255]="Veuillez choisir l'unité pour les temperature, 0 pour celsius 1f pour farenheit: ";
  33.               //Message de saisie pour le choix de l'unité
  34. char MSG_CHOIX_LANGUE[255]="Veuillez choisir la langue, 0 pour francais 1 pour anglais: ";
  35. char MSG_TABLEAU[255]="Le programme va vous afficher le tableau des temperatures dans la langue et l'unite choisies";
  36. minima=0;                     //Initialisation du minima et maxima
  37. maxima=0;
  38. for (compteuR=0;compteuR<12;compteuR++){       //Tableau des temp. minimales
  39. printf("%s",MSG_SAISIE_TEMP_MIN);
  40. scanf("%f",&temperature_min);
  41.  far=((temperature_min*1.8)+32);
  42.  tab1[compteuR]=temperature_min;
  43.         tab2[compteuR]=far;
  44.  if (temperature_min <= minima) {              //recherche du minima et sa position
  45.   minima=temperature_min;
  46.   position_minima=compteuR;
  47.  }
  48. }
  49. for (compteuR=0;compteuR<12;compteuR++){       //Tableau des temp. max
  50. printf("%s",MSG_SAISIE_TEMP_MAX);
  51. scanf("%lf",&temperature_max);
  52.  far=((temperature_max*1.8)+32);
  53.  tab3[compteuR]=temperature_max;
  54.         tab4[compteuR]=far;
  55.  if (temperature_max <= maxima) {              //Recherche d'un maxima et sa position
  56.   maxima=temperature_max;
  57.   position_maxima=compteuR;
  58.         }
  59. }
  60. printf("%s\n",MSG_CHOIX_LANGUE);                                                //Choix des langues
  61. scanf("%d", &langue);
  62. fflush(stdin);
  63. printf("%s\n",MSG_SAISIE_UNITE);               //Message de saisie pour l'unite
  64. scanf("%d", &unite);
  65. if ((langue==0) && (unite==0)){
  66.     puts("Ce programme affichera les mois en francais et les degrés en Celsius" );
  67.     for (compteur=0;compteur<12;compteur++){
  68.         printf(mois_fr[compteur]);
  69.         printf("\n" );
  70.     }
  71.     for (compteuR=0;compteuR<12;compteuR++){
  72.         printf("%lf %lf",tab1[compteuR],tab3[compteuR]);
  73.         printf("\n" );
  74.     }
  75. }
  76. else{
  77.     if ((langue==1) && (unite==0)){
  78.         puts("Ce programme affichera les mois en anglais et les degrés en celsius" );
  79.         for (compteur=0;compteur<12;compteur++){
  80.         printf(mois_anglais[compteur]);
  81.         printf("\n" );
  82.         }
  83.         for (compteuR=0;compteuR<12;compteuR++){
  84.             printf("%lf %lf",tab1[compteuR],tab3[compteuR]);
  85.             printf("\n" );
  86.             }
  87.     }
  88. else{
  89.     if ((langue==0) && (unite==1)){
  90.         puts("Ce programme affichera les mois en francais et les temperatures en farenheit" );
  91.         for (compteur=0;compteur<12;compteur++){
  92.         printf(mois_fr[compteur]);
  93.         printf("\n" );
  94.         }
  95.         for (compteuR=0;compteuR<12;compteuR++){
  96.             printf("%lf %lf",tab2[compteuR],tab4[compteuR]);
  97.             printf("\n" );
  98.         }
  99.     }
  100. else{
  101.     if ((langue==1) && (unite==1)){
  102.        puts("Ce programme affichera les mois en anglais et les temperatures en farenheit" );
  103.         for (compteur=0;compteur<12;compteur++){
  104.         printf(mois_anglais[compteur]);
  105.         printf("\n" );
  106.         }
  107.         for (compteuR=0;compteuR<12;compteuR++){
  108.             printf("%lf %lf",tab2[compteuR],tab4[compteuR]);
  109.             printf("\n" );
  110.         }
  111.     }
  112. }
  113. }
  114. }
  115. return (EXIT_SUCCESS);
  116. }


Quand je souhaite afficher les valeurs enregistrées manuellement, il écrit toujours 0.00000.
Si vous aviez une idée de mon erreur...ça me serait bien utile!

mood
Publicité
Posté le 04-01-2014 à 23:00:51  profilanswer
 

n°2215012
Farian
Posté le 04-01-2014 à 23:17:26  profilanswer
 

Bonsoir !
 
Vous utilisez "%lf" pour lire un flottant, alors que ce dernier sert à lire un double. Vous devez utiliser "%f" pour saisir un flottant.
 
A priori, cela n'a pas d'importance pour le printf, mais pour le scanf, oui.
 
Bonne continuation !

n°2215018
Thaybow7
Posté le 05-01-2014 à 05:02:27  profilanswer
 

J'ai changé les double en float. Il y a toujours un probleme concernant les lignes ou j'ai chaque fois printf("%f %f",...)
Le warning : format %f expects arguments of type 'double' but arguments 2 has type 'int'.


Message édité par Thaybow7 le 05-01-2014 à 05:03:38
n°2215019
Farian
Posté le 05-01-2014 à 05:13:43  profilanswer
 

En effet, les tableaux tab1, tab2, tab3 et tab4 sont déclarés comme tableaux d'entiers, et vous les affichez (et stockez dedans les valeurs que vous saisissez) comme des doubles, l'erreur vient de là.
 
Bonne continuation !

n°2215020
Thaybow7
Posté le 05-01-2014 à 05:23:53  profilanswer
 

Ok j'ai changé avec %d comme les tableau sont des entiers. C'est déjà mieux. Mais par contre, il ne m'affiche pas les valeurs avec des décimales. Sur la variable far je multiplie par 1.8. Je n'ai que des chiffres ronds dans mon tableau

n°2215021
Farian
Posté le 05-01-2014 à 06:16:05  profilanswer
 

C'est normal, si le tableau contient des entiers, les valeurs sont entières, pas décimales ...
 
Vous devez utiliser des tableaux de flottants.
 
Bonne continuation !


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

  [c] Probleme afficher valeur correcte tableau

 

Sujets relatifs
[Rés]Incrémentation, redimenssionnement, valeur d'une liste modifiableproblème insertion images site web
Probleme de comptage (SQL Oracle)problème d'excécution 13
un probleme en matlabaidez moi svp probleme php vers word
Fortran : Probleme de lecture[ORACLE] problème avec "select in select" ou équivalent
Afficher la variable local d'une fonction dans une classe filleProblème boucle VBA avec vlookup
Plus de sujets relatifs à : [c] Probleme afficher valeur correcte tableau


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