Je développe pour mon projet une petite application et je rencontre un problème. Tout d'abord voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//fichier main.c
 
#include <stdio.h>
#include <stdlib.h>
 
int main()
{  float taux; 
 
    printf("Bienvenue dans notre logiciel de calcul HF\n\n");
    taux=taux_ondulation();
    printf("%f", taux); //test de retour de la valeur taux_o
 
 
  system("PAUSE");	
  return 0;
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//fichier taux_ondulation.c
 
#include <stdio.h>
#include <stdlib.h>
 
float taux_ondulation()
{   float taux_o = 0.0; 
    printf("Veuillez saisir le taux d'ondulation max (Am) en dB : ");
    scanf("%f", &taux_o);
    while ( taux_o < 0 || taux_o > 10 )
          { printf("Valeur incorrecte ! Recommencez : ");
            getchar();
            scanf("%f", &taux_o);
          }
    printf("Vous avez choisi un taux de %.2f dB\n\n", taux_o);
    return taux_o;
}
Mon problème est le suivant lors de l'éxecution sur une console de ce code, la fonction est bien appelée et bien exécuté, on peut observer : "Vous avez choisi un taux de (nombre) dB " et le nombre correspond bien à celui tapé pendant le test. Cependant j'ai rajouté un printf sur la valeur taux dans le main, pour vérifier que j'ai bien la même valeur de taux_o dans le main ! Mais ça m'affiche n'importe quoi, du style 1495698394.00000 à chaque coup.
Je vois pas où est le problème, si c'est au niveau de l'utilisation des float ou au niveau du return.

Avec des integer il n'y a aucun problèmes !
Mais je dois,pour cette application absolument renvoyer une valeur réelle non entière.

Merci de votre aide !!