CorrectionTD6 C
CorrectionTD6 C
CorrectionTD6 C
Exercice 2
Version 1 Version 2
#include<stdio.h> #include<stdio.h>
void f1(){ void f1();
printf("Bonjour\n");} void f2(int);
void f2(int n){ main(){
int i; int n;
for(i=0; i<n; i++) f1();
printf("Bonjour\n");} scanf("%d", &n);
main(){ f2(n);}
int n; void f1(){printf("Bonjour\n");}
f1(); void f2(int n){
scanf("%d", &n); int i;
f2(n);} for(i=0; i<n; i++)
printf("Bonjour\n");}
Exercice 3
Version 1 Version 2
#include<stdio.h> #include<stdio.h>
int Max(int a, int b){ int Max(int, int);
if(a>b) return a; int Min(int, int);
else return b;} main(){
int Min(int a, int b){ int a,b;
if(a<b) return a; printf("Entrez deux entiers:\n");
else return b;} scanf("%d%d",&a,&b);
main(){ printf("le max est: %d\n", Max(a,b));
int a,b; printf("le min est: %d\n", Min(a,b));}
printf("Entrez deux entiers:\n"); int Max(int a, int b){
scanf("%d%d",&a,&b); if(a>b) return a;
printf("les max est: %d\n", Max(a,b)); else return b;}
printf("les min est: %d\n", Min(a,b)); int Min(int a, int b){
} if(a<b) return a;
else return b;}
Exercice 4
Version 1 Version 2
#include<stdio.h> #include<stdio.h>
int Max(int a, int b){ int Max(int, int);
if(a>b) return a; int Min(int, int);
return b;} main(){
int Min(int a, int b){ int a,b;
if(a<b) return a; printf("Entrez deux entiers:\n");
return b;} scanf("%d%d",&a,&b);
main(){ printf("le max est: %d\n", Max(a,b));
int a,b; printf("le min est: %d\n", Min(a,b));}
printf("Entrez deux entiers:\n"); int Max(int a, int b){
scanf("%d%d",&a,&b); if(a>b) return a;
printf("les max est: %d\n", Max(a,b)); return b;}
printf("les min est: %d\n", Min(a,b));} int Min(int a, int b){
if(a<b) return a;
return b;}
Exercice 5
Version 1 Version 2
#include<stdio.h> #include<stdio.h>
int Somme(int n){ int Somme(int n);
int i, s=0; main(){
for(i=0;i<n+1; i++) int n;
s+=i; printf("Entrez un entier:\n");
return s;} scanf("%d",&n);
main(){ printf("la somme est :%d\n", Somme(n));}
int n; int Somme(int n){
printf("Entrez un entier:\n"); int i, s=0;
scanf("%d",&n); for(i=0;i<n+1; i++)
printf("la somme est :%d\n", Somme(n)); s+=i;
} return s;}
Exercice 6
Version 1 Version 2
#include<stdio.h> #include<stdio.h>
int fact(int n){ int fact(int n);
if(n==0) return 1; main(){
else int n;
{int i, p=1; printf("Entrez un entier:\n");
for(i=1;i<n+1; i++) scanf("%d",&n);
p*=i; printf("le factoriel de %d est :%d\n",n, fact(n));}
return p;} int fact(int n){
main(){ if(n==0) return 1;
int n; else
printf("Entrez un entier:\n"); {int i, p=1;
scanf("%d",&n); for(i=1;i<n+1; i++)
printf("le factoriel de %d est p*=i;
:%d\n",n,fact(n));} return p;} }
Exercice 7
Version 1 Version 2
#include<stdio.h> #include<stdio.h>
int Max(int a, int b){ int Max(int, int);
if(a>b) return a; int Min(int, int);
return b;} int main(){
int Min(int a, int b){ int a,b,c,d, max, min;
if(a<b) return a; printf("Entrez quatre entiers:\n");
return b;} scanf("%d%d%d%d",&a,&b,&c,&d);
int main(){ max=Max(Max(a,b), Max(c,d));
int a,b,c,d, max; printf("le max est: %d\n", max);
printf("Entrez quatre entiers:\n"); min=Min(Min(a,b), Min(c,d));
scanf("%d%d%d%d",&a,&b,&c,&d); printf("le min est: %d\n", min);}
max=Max(Max(a,b), Max(c,d)); int Max(int a, int b){
printf("les max est: %d\n", max); if(a>b) return a;
min=Min(Min(a,b), Min(c,d)); return b;}
printf("les min est: %d\n", min); int Min(int a, int b){
return 0;} if(a<b) return a;
return b;}
Exercice 8
#include <stdio.h>
/* Saisie de la dimension et des composantes du tableau */
void LIRE_TAB (int *TAB, int *N, int NMAX)
{
int I;
/* Saisie de la dimension du tableau */
do
{
printf("Dimension du tableau (max.%d) : ", NMAX);
scanf("%d", N); /* Attention: écrire N et non &N ! */
}
while (*N<0 || *N>NMAX);
/* Saisie des composantes du tableau */
for (I=0; I<*N; I++)
{
printf("Elément[%d] : ", I);
scanf("%d", TAB+I);
}
}
/* Affichage des composantes du tableau */
void ECRIRE_TAB (int *TAB, int N)
{
int I;
for (I=0; I<N; I++)
printf("%d\t", *(TAB+I));
printf("\n");
}
/* Calcul de la somme */
long SOMME_TAB(int *TAB, int N)
{
long SOMME = 0;
int I;
for (I=0; I<N; I++)
SOMME += *(TAB+I);
return SOMME;
}
/* Calcul de max */
long MAX_TAB(int *TAB, int N)
{
long max = *TAB;
int i;
for (i=1 ; i<N ; i++)
if (*(TAB+i) > max)
max = *(TAB+i) ;
return max;
}
/* Calcul de min */
long MIN_TAB(int *TAB, int N)
{
float moy = 0;
int i;
for (i=0; i<n; i++)
moy += *(note+i);
moy/=n;
return moy;
}
/* Calcul de max */
float max_notes(float *note, int n)
{
float max = *note;
int i;
for (i=1 ; i<n ; i++)
if (*(note+i) > max)
max = *(note+i) ;
return max;
}
/* Calcul de min */
float min_notes(float *note, int n)
{
float min = *note;
int i;
for (i=1 ; i<n ; i++)
if (*(note+i) < min)
min = *(note+i) ;
return min;
}
main()
{
float Note[100];
int N;
saisie_notes (Note, &N);
printf("Notes : \n");
affichage_notes (Note, N);
printf("Moyenne des notes : %.2f\n", moyenne_notes(Note, N) );
printf("Maximum des notes : %.2f\n", max_notes(Note, N) );
printf("Minimum des notes : %.2f\n", min_notes(Note, N) );
}
Exercice 10
#include <stdio.h>
void saisie_M_N( int * m , int *n )
{
printf("Entrer m (<=20) et n (<=30) : ? " ) ;
scanf("%d%d", m , n );
}
void saisie_A( int A[20][30] , int m , int n)
{int i , j ;
for( i = 0 ; i < m ; i++ )
for ( j = 0 ; j < n ; j++ )
scanf("%d", &A[ i ][ j ] );
}
void affichage_A ( int A[20][30] , int m, int n)
{ int i , j ;
for ( i = 0 ; i < m ; i++ )
{
for ( j = 0 ; j < n ; j++ )
printf( "%d\t", A[ i ][ j ] );
printf("\n");
}
}
int main( )
{ int A[20][30] , M , N;
printf("entrer les dimensions de la matrice\n");
saisie_M_N( &M , &N );
printf("entrer les elements de la matrice\n");
saisie_A( A , M , N );
printf("affichage de la matrice\n");
affichage_A( A , M, N );
return 0;
}
Exercice 11
#include<stdio.h>
#include<stdlib.h>
/*saisie du tableau*/
float* saisie(float* T, int taille)
{int i;
T=(float*)malloc(taille*sizeof(float));
for(i=0;i<taille;i++){
printf("Entrer l'élement du tableau n: %d \n",i+1);
scanf("%f",T+i);}
return T;
}
/*affichage du tableau*/
void affiche(float* T, int taille)
{
int i;
for(i=0;i<taille;i++){
printf("%.2f ",*(T+i));}
printf("\n");
}
/*nombre d'elements positifs*/
int compter(float* T, int taille)
{
int i,comp;
comp=0;
for(i=0;i<taille;i++){
if(*(T+i)>0) comp++;}
return comp;
}
/*copier des elements positifs dans un autre tableau*/
float* copier(float* T, int taille){
int i,j;
float* T2;
T2=(float*)malloc(compter(T,taille)*sizeof(float));
j=0;
for(i=0;i<taille;i++){
if(*(T+i)>0){ *(T2+j)=*(T+i);j++;}}
return T2;
}
main(){
float *T;int N;
printf("Entrer la taille du tableau\n");
scanf("%d",&N);
T=saisie(T,N);
printf("tableau\n");
affiche(T,N);
printf("nombre elements positis: %d\n",compter(T,N));
printf("tableau positif\n");
affiche(copier(T,N),compter(T,N));}
Exercice 12
#include<stdio.h>
#include<stdlib.h>
int Somme(int n)
{
if(n==0) return 0;
else return n+Somme(n-1);
}
int main()
{
int n;
printf("Entrez un entier: ");
scanf("%d",&n);
printf("La somme des entiers jusqu'a %d est: %d.\n",n,Somme(n));
return 0;
}
Exercice 13
#include<stdio.h>
int fact(int);//Prototype de la fonction puissance
main(){
int n;
printf("Entrez un entier: ");
scanf("%d",&n);
printf("Le factoriel de %d est: %d\n",n,fact(n));}
int fact(int n) //Définition de la fonction factoriel
{if(n==0) return 1;
else return n*fact(n-1);}
Exercice 14
#include <stdio.h>
long puissance ( int , int ) ; //Prototype de la fonction puissance
void main()
{ int a, b;
printf("Entrez un nombre: ");
scanf("%d",&a);
printf("Entrez la puissance: ");
scanf("%d",&b);
printf("%ld\n", puissance( a , b ) ); }
long puissance (int x, int n) //Définition de la fonction x à la puissance n
{ int i ;
if(n==0) return 1;
else return x*puissance(x, n-1);}
Exercice 15
#include<stdio.h>
int Fibonacci(int N)
{ if (N==0||N==1) return 1 ;
else return( Fibonacci(N-1)+Fibonacci(N-2) );}
main() { int N;
printf("Donnez un entier: ");
scanf("%d",&N);
printf("Fibonacci(%d)=%d\n",N,Fibonacci(N));}
Exercice 16
#include<stdio.h>
float Hermite(int N , float X)
{ if (N==0) return 1 ;
else if(N==1) return(2*X) ;
else return(2*X*Hermite(N-1 , X)+2*(N-1)*Hermite(N-2,X));
}
main() { int N; float X ;
printf("Donnez un entier: ");
scanf("%d",&N);
printf("Donnez un reel : ");
scanf("%f",&X);
printf("Hermite(%d , %.2f)=%.2f\n",N,X,Hermite(N , X));}