Département d'Informatique |
IUP1 GMI 2002/2003 |
Algorithmique & Programmation |
Corrigé du Contrôle Continu du |
Mardi 26 novembre |
I Quotient de 2 entiers naturels avec un nombre illimité de décimales
Fichier : quotient.c
#include <stdio.h>
main()
{
int reste; /* les restes sucessifs */
int dec; /* les décimales successives */
int a,b; /* les 2 entiers naturels donnés */
int n; /* le nombre de décimales donné */
int i; /* les numéros de décimale de 1 à n */
int dividende; /* les dividendes successifs */
/* --- lecture des données --- */
printf("Entrer le dividende (a) : ");
scanf("%d",&a);
printf("Entrer le diviseur (b) : ");
scanf("%d",&b);
printf("Entrer le nombre de décimales désirées : ");
scanf("%d",&n);
/* --- affichage du quotient --- */
/* -- le debut du message */
printf("Le quotient de %d (a) par %d (b) est : ",a,b);
/* -- la partie entière */
printf("%d.",a/b);
/* -- les décimales */
reste=a%b;
for(i=1;i<=n;i++) /* pour chacune des décimales */
{
/* le nouveau dividende est le reste * 10 */
dividende=reste*10;
/* la décimale est la partie entière du dividende divisé par b */
dec=dividende/b;
/* affichage de la décimale courante */
printf("%d",dec);
/* mis à jour du reste */
reste=dividende%b;
}
printf("\n");
}
II Partition d'un entier naturel en 3 entiers naturels
Fichier : partition.c
#include <stdio.h>
main()
{
int i,j,k; /* les 3 éléments d'une partition */
int n; /* l'entier naturel donné */
/* --- lecture du nombre entier naturel n --- */
printf("Entrer un entier naturel : ");
scanf("%d",&n);
/* --- affichage des partitions --- */
printf("Les partitions de %d sont : \n",n);
/* -- on parcours l'ensemble E = {(i,j,k) | 0<=i<j<k<n} par 3 itérations */
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
for(k=j+1;k<n;k++)
/* -- une partition correspond à un elt de E tels que i+j+k=n */
if(i+j+k==n)
printf("{ %d, %d, %d }\n",i,j,k);
}
This document was translated from LATEX by
HEVEA.