« Exercices en langage C/Types » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
→‎Exercice 1 : longueurs en octet des types du langage C : Portabilité : un char n'occupe pas focément 8 bits.
Ligne 79 : Ligne 79 :
'''Correction'''
'''Correction'''
<source lang="c">
<source lang="c">

/*******************************************************
/*******************************************************
Nom ......... : limites.c
Nom ......... : limites.c
Role ........ : Imprime les caractéristiques numériques
Role ........ : Imprime les caractéristiques numériques
pour les types du langage C
pour les types du langage C
Auteur ...... : Thierry46
Auteur ...... : Thierry46
Version ..... : V1.0 du 11/1/2008
Version ..... : V1.1 du 10/3/2008
Licence ..... : GNU GPL
Licence ..... : GNU GPL


Compilation :
Compilation :
gcc -Wall -std=c99 -o limites.exe limites.c
gcc -Wall -pedantic -std=c99 -o limites.exe limites.c
Pour exécuter, tapez : ./limites.exe
Pour exécuter, tapez : ./limites.exe
********************************************************/
********************************************************/
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
// Pour les limites lies aux entiers
// Pour les limites lies aux entiers et char
#include <limits.h>
#include <limits.h>
// Pour les limites lies aux nombres reels
// Pour les limites lies aux nombres reels
Ligne 102 : Ligne 101 :
{
{
// Impression des limites pour les nombres entiers
// Impression des limites pour les nombres entiers
(void)printf("CHAR_MIN = %d\n", CHAR_MIN);
(void)printf("CHAR_MAX = %d\n", CHAR_MAX);
(void)printf("INT_MIN = %d\n", INT_MIN);
(void)printf("INT_MIN = %d\n", INT_MIN);
(void)printf("INT_MAX = %d\n", INT_MAX);
(void)printf("INT_MAX = %d\n", INT_MAX);
(void)printf("LONG_MIN = %ld\n", LONG_MIN);
(void)printf("LONG_MIN = %ld\n", LONG_MIN);
(void)printf("LONG_MAX = %ld\n", LONG_MAX);
(void)printf("LONG_MAX = %ld\n", LONG_MAX);

// Impression des limites pour les réels
// Impression des limites pour les réels
(void)printf("FLT_EPSILON = %e\n", FLT_EPSILON);
(void)printf("FLT_EPSILON = %e\n", FLT_EPSILON);
Ligne 114 : Ligne 115 :
(void)printf("DBL_MIN = %le\n", DBL_MIN);
(void)printf("DBL_MIN = %le\n", DBL_MIN);
(void)printf("DBL_MAX = %le\n", DBL_MAX);
(void)printf("DBL_MAX = %le\n", DBL_MAX);

return EXIT_SUCCESS;
return EXIT_SUCCESS;
} /* int main(... */
} /* int main(... */
Ligne 122 : Ligne 123 :
<pre>
<pre>
MacMini-TM:~/Documents/developpement/c thierry$ ./limites.exe
MacMini-TM:~/Documents/developpement/c thierry$ ./limites.exe
CHAR_MIN = -128
CHAR_MAX = 127
INT_MIN = -2147483648
INT_MIN = -2147483648
INT_MAX = 2147483647
INT_MAX = 2147483647

Version du 10 mars 2008 à 21:49

Exercice 1 : longueurs en octet des types du langage C

Écrivez un programme taille.c qui affiche à l'écran la taille des différents types de données en octet du langage C sur votre architecture machine.

Vous utiliserez l'opérateur sizeof(type).

Exercice 2 : caractéristiques numériques des types du langage C

Écrivez un programme limites.c qui affiche à l'écran les caractéristiques numériques des différents types du langage C.

Vous utiliserez les constantes symboliques des includes limits.h et float.h.