Bonjour,
j'essaye d'écrire un programme qui me calcul les valeurs pour cette formule :
(1/2)*g*t*t .
Voici ce qui a été fait (sous linux, compilateur gcc)
Et voici le résultat :
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 #include <stdio.h> #define G 9.81 #define N 16 int main(void) { int t; /* Temps en seconde */ float m; /* Longueur en m */ printf("\t t \t (1/2)gt^2\n"); printf("\t==========================\n"); for (t=0; t<=N; t++) { printf("\t%3d \t %18d\n", t , m); m = 0.5*G*t*t; } return 0; }
Alors pour le temps (t) cela s'affiche, par contre pour m la distance parcouru, je sais pas pourquoi cela m'affiche ces chiffre là.t (1/2)gt^2
==========================
0 -2147483648
1 0
2 1610612736
3 1610612736
4 1610612736
5 1610612736
6 0
7 1610612736
8 1073741824
9 1610612736
10 1073741824
11 0
12 1073741824
13 1610612736
14 1610612736
15 1073741824
16 0
Par contre quand je change cette ligne :
float m; /* Longueur en m */
en celle-ci
int m; /* Longueur en m */
cela m'affiche ceci :
pour la distance m je n'est pas les chiffres après la virgule, quelqu'un saurait d'où vient le problème ? (normalement les données sont sur 2 colonnes distincts mais l'affichage me le permet pas)t (1/2)gt^2
==========================
0 9129972
1 0
2 4
3 19
4 44
5 78
6 122
7 176
8 240
9 313
10 397
11 490
12 593
13 706
14 828
15 961
16 1103
merci d'avance.
Partager