Vous êtes sur la page 1sur 5

SERIE N°3 : PROGRAMMATION EN LANGAGE C

Oughriss mohamed

1.1 Exercice 1

Ecrire un programme qui saisit 2 entiers et affiche successivement la somme , la différence, le


produit et le quotient de ces 2 entiers.
Corrigé :
#include<stdio.h>
int main(void)
{

int a,b;
printf("Entrer deux nombres entiers :");
scanf("%d %d",&a,&b);
printf("\nLa somme de %d et %d vaut %d",a,b,a+b);
printf("\nLa difference de %d et %d vaut %d",a,b,a-b);
printf("\nLe produit de %d et %d vaut %d",a,b,a*b);
printf("\nLe quotient de %d et %d vaut f\n",a,b,(float)a/(float)b);

return 0;
}

1.2 Exercice 2

Ecrire un programme qui demande à l’utilisateur de donner le rayon d’un cercle et lui retourne sa
surface et son périmètre.
Corrigé :

#include<stdio.h>
#include<math.h>
#define Pi 4*atan(1)

int main(void)
{
float r;
printf("Entrer le rayon du cercle :");
scanf("%f",&r);
printf("La surface du cercle vaut %f \n",Pi*r*r);
printf("Le perimetre du cercle vaut %f\n",2*Pi*r);
return 0;
}

1.3 Exercice 3

Ecrire un programme qui saisit deux entiers a et b et permute la valeur de ces deux entiers.
Corrigé :

#include<stdio.h>

int main(void)
{
/* il faut utiliser une variable tampon pour l'echange */
int a,b,tampon;
printf("Entrer 2 entiers a et b:");
scanf("%d %d",&a,&b);

tampon=a;
a=b;
b=tampon;
printf("a vaut maintenant %d\n",a);
printf("b vaut maintenant %d\n",b);
return 0;
}

1.5 Exercice 5

Ecrire un programme retournant la factorielle d’un nombre entier entré par l’utilisateur.
Corrigé :

#include<stdio.h>
int main(void)
{
int i,n,res;
res=1;
printf("Entrer un entier :");
scanf("%d",&n);
for(i=n;i>1;i--)
{
res=res*i;
}
printf("%d ! vaut %d\n",n,res);
return 0;
}

1.6 Exercice 6

Ecrire un programme qui résout les équations du second degré (ax2 + bx + c = 0).
Le programme demande a, b et c à l’utilisateur puis indique le nombre de solutions ainsi que
leurs valeurs.
Corrigé :

#include<stdio.h>
#include<math.h>

int main(void)
{
float a,b,c,dis,res1,res2;
printf("Entrer les coefficients a, b et c de l'equation ax2+bx+c : \n");
scanf("%f %f %f",&a,&b,&c);
dis=b*b-4*a*c;
printf("Le discriminant vaut %f \n",dis);
if (dis<0)
{
printf("Discriminant negatif, pas de solutions reelles!\n");
}
else
{
if (dis==0)
{
res1=-b/(2*a);
printf("Le discriminant est nul, il y a donc une seule solution: %f
\n",res1);
}
else
{
res1=(-b-sqrt(dis))/(2*a);
res2=(-b+sqrt(dis))/(2*a);
printf("Le discriminant est positif, il y a donc deux solutions: %f et %f
\n",res1,res2);
}
}

return 0;
}

LES TABLEAUX :

2.1 Exercice 1

Ecrire un programme qui initialise un tableau d’entiers de dimension N puis calcule la moyenne 
des éléments du tableau. 

Corrigé : 

#include<stdio.h>
#define N 10
int main(void)
{
int i,tab[N];
float moy;
moy=0;
printf("Entrer les valeurs du tableau \n");

for (i=0;i<N;i++)
{
printf("tab[%d] = ",i);
scanf("%d",&tab[i]);
printf("\n");
moy=moy+tab[i];
}
moy=moy/N;
printf("La moyenne du tableau vaut %f\n",moy);
return 0;
}
 

2.2 Exercice 2

Ecrire un programme qui saisit un entier a et range dans un tableau d’entier les valeurs de ai 
avec i = 0,1,2,..N  avec N la taille du tableau  

Corrigé : 

#include<stdio.h>
#define N 5
int main(void)
{
int i,tab[N],a;
float moy;
moy=0;
printf("Entrer le coefficient a \n");
scanf("%d",&a);
tab[0]=a;
printf("tab[%d] = %d\n",0,tab[0]);
for (i=1;i<N;i++)
{
tab[i] = tab[i-1]*a;
printf("tab[%d] = %d \n",i,tab[i]);
}
return 0;
}

3.4 Exercice 4

Ecrire un programme qui lit successivement

• un nombre (nombre1)
• un opérateur (+,-,*,/)
• un nombre (nombre2)

et qui retourne le résultat de l’opération: nombre1 operateur nombre2, puis propose d’arrêter ou
de refaire le calcul.

Corrigé :

#include <stdio.h>

int main(void)
{
double n1,n2,res;
char op,ch;
do {
printf("Entrer n1: ");
scanf("%lf",&n1);
printf("Entrer op: ");
/* on vide le buffer associé à stdin */
while ( getchar() != '\n');
scanf("%c",&op);
printf("Entrer n2: ");
scanf("%lf",&n2);
if (op=='+')
res=n1+n2;
else if (op=='-')
res=n1-n2;
else if (op=='*')
res=n1*n2;
else if (op=='/')
res=n1/n2;
else
{
printf("l'operateur n'est pas valide\n");
continue;
}

printf("Le resultat de %f %c %f est %f\n",n1,op,n2,res);


printf("\nVoulez-vous recommencez Oui ou Non: ");
fflush(stdin);
scanf("%c",&ch);
printf("\n");
} while(ch!='n');
return 0;
}

2.5 Exercice 5

On considère le tableau T de N réels. Ecrire un programme qui affiche le rang dans le tableau
d’un réel x donné, et ce dans les deux cas suivants:

• on est assuré que le réel x existe dans le tableau,


• il est possible que cet élément n’existe pas.

Corrigé :

#include <stdio.h>
#define dim 10
int main(void)
{
double t[dim] = { 6.,7.,8.,9.,1.,0.,3.,2.,5.,4. };
double ti;
int i;
printf("Entrer un reel: ");
scanf("%lf",&ti);
for (i=0;i<dim;i++)
if (t[i]==ti)
{
printf("le rang de %f dans le tableau est: %d \n",ti,i);
break;
}
if(i==dim) printf("la valeur %f n'existe pas dans le tableau",ti);
printf("\n");
return 0;
}