Correction de la Série N° 2

Série N°2
Question N°7
#include <stdio.h>
#include <conio.h>
int main()
{
float note;
//saisie
printf("Entrez une note : ");
scanf("%f", &note) ;
if((note < 0) || (note > 20))
printf("la note n'est pas valide\n");
else{
if(note < 10)
printf("non admis\n");
else{ // la note est au moins égale a la moyenne
printf("admis avec la mention ");
// determiner la mention en fonction de la note
if(note < 12)
printf("passable\n");
else { // la note est au moins egale a 12
if(note < 14)
printf("assez bien\n");
else { // la note est au moins egale a 14
if(note < 16)
printf("bien\n");
else { // la note est au moins egale a 16
if(note < 18)
printf("tres bien\n");
else { // la note est au moins egale a 18
if(note <= 20)
printf("felicitations du jury\n");
}
}
}
}
}
}
getch();
return 0;
}
Question N°8
#include <stdio.h>
#include <conio.h>
//la function qui permet de calculer la foctorille
long factorielle (int n) {
int i;
long fact= 1; // pour stocker le resultat
if (n == 0) // cas particulier ou il n'y a rien a calculer
return 1;
for(i = n ; i > 0; i--)
fact = fact * i;
return fact;
}
int main()
{
int nombre;
printf("donner un nombre entier pour calculer sa factorielle ");
scanf("%d", &nombre) ;
printf("Factorielle (%d) = %ld\n", nombre, factorielle(nombre));
getch() ;
return 0;
}
Question N°9
#include <stdio.h>
#include <conio.h>
long factorielle (int n) {
int i;
long fact= 1; // pour stocker le resultat
if (n == 0) // cas particulier ou il n'y a rien a calculer
return 1;
for(i = n ; i > 0; i--)
fact = fact * i;
return fact;
}
int main(void)
{
int nombre;
printf("donner un nombre entier pour calculer sa factorielle");
scanf("%d",&nombre) ;
while (nombre!= -1)
{
printf("Factorielle (%d) = %ld\n", nombre, factorielle(nombre));
printf("donner un nombre entier pour calculer sa factorielle\n");
printf("-1 pour arrêter : ") ;
scanf("%d", &nombre) ;
}
getch() ;
return 0;
}
Question N°10
z = (a>b ? a : b) + (a <= b ? a : b) ;
si la condition a>b est vrai le résultat de (a>b ? a : b) est a et le résultat de (a<=b ?a :b) est b et donc
on
z=a+b
sinon (c'est-à-dire la condition a>b est fausse) alors le résultat de (a>b ?a :b) est b et le résultat de
(a<=b ?a ;b) est a. on a donc z= b+a
Et donc tous les cas z = (a>b ? a : b) + (a <= b ? a : b) ; est équivalent à écrire z=a+b ;
Question 11
Le programme en utilisant while
#include <stdio.h>
#include <stdio.h>
#include <conio.h>
main()
#include <stdio.h>
{
main()
int i, n, som ;
{
som
=0;
int i, n, som ;
i=0;
som = 0 ;
while (i<4)
{
for (i=0 ; i<4 ; i++ )
printf ("donnez un entier ") ;
{
scanf ("%d", &n) ;
printf ("donnez un entier ") ;
som += n ;
scanf ("%d", &n) ;
i++;
som += n ;
}
printf ("Somme : %d\n", som) ;
}
}
printf ("Somme : %d\n", som) ;
}
En utilisant la boucle do…while
#include <stdio.h>
main()
{
int i, n, som ;
som = 0 ;
i=0;
do
{
printf ("donnez un entier ") ;
scanf ("%d", &n) ;
som += n ;
i++;
} while(i<4);
printf ("Somme : %d\n", som) ;
}
Question 12
#include <stdio.h>
#include <conio.h>
int main()
{
float note, moy, sommeNotes=0;
int nbreNotes=0 ;
printf("Note 1 :");
scanf("%f",&note) ;
while (note!= -1)
{
sommeNotes+=note ;
nbreNotes++ ;
printf("Note %d :", nbreNotes+1);
scanf("%f", &note) ;
}
if(nbreNotes!=0)
{
moy=sommeNotes/nbreNotes;
printf("moyenne de ces %d notes :%f\n",nbreNotes,moy) ;
}
getch() ;
return 0;
}
Question 13
#include <stdio.h>
#include <conio.h>
int main()
{
int i,j;
for(j=0;j<=10;j++)
{
printf("%4d|",j);
}
printf("\n");
for(i=1;i<=10;i++)
{
printf("%4d|",i);
for(j=1;j<=10;j++)
{
printf("%4d|",i*j);
}
printf("\n");
}
getch();
return 0;}
Le résultat de ce programme est :
0| 1| 2| 3| 4| 5| 6|
1| 1| 2| 3| 4| 5| 6|
2| 2| 4| 6| 8| 10| 12|
3| 3| 6| 9| 12| 15| 18|
4| 4| 8| 12| 16| 20| 24|
5| 5| 10| 15| 20| 25| 30|
6| 6| 12| 18| 24| 30| 36|
7| 7| 14| 21| 28| 35| 42|
8| 8| 16| 24| 32| 40| 48|
9| 9| 18| 27| 36| 45| 54|
10| 10| 20| 30| 40| 50| 60|
7|
7|
14|
21|
28|
35|
42|
49|
56|
63|
70|
8|
8|
16|
24|
32|
40|
48|
56|
64|
72|
80|
9| 10|
9| 10|
18| 20|
27| 30|
36| 40|
45| 50|
54| 60|
63| 70|
72| 80|
81| 90|
90| 100|
Question 14
#include <stdio.h>
#include <conio.h>
#define N 10
int main()
{
int j, note, occur, noteHaute;
for(j=0;j<=N;j++)
{
printf("donner une note");
scanf("%d",&note);
if(j==0)
{
noteHaute=note;
occur=1;
}
else if(note>noteHaute)
{
noteHaute=note;
occur=1;
}
else if(note==noteHaute)
{
occur++;
}
}
printf("la note haute = %d son nombre d'accurence =%d",noteHaute, occur);
getch();
return 0;
}
Question 15
#include <stdio.h>
#include <conio.h>
int main()
{
int a,b;
char op;
printf("donner deux nombres entiers");
scanf("%d%d",&a,&b);
printf("donner l'opérateur\n");
printf("<*:multiplication + : addition - :soustraction /: division>: ");
fflush(stdin);
scanf("%c",&op);
switch(op)
{
case '+':
printf("%d+%d=%d",a,b,a+b);
break;
case '-':
printf("%d-%d=%d",a,b,a-b);
break;
case '*':
printf("%d*%d=%d",a,b,a*b);
break;
case '/':
if(b!=0)
printf("%d/%d=%f",a,b,(float)a)/b);
//(float)a permet de convertir la valeur de a de entier en réel
break;
}
getch();
return 0;
}