Vous êtes sur la page 1sur 6

TP2

EX1
#include <stdio.h>

#include <stdlib.h>

int produit(int n, int p){

if( n==0 || p==0){

return 0;

else{

return (n+produit(n,p-1));

int main()

intn,p ;

do{

printf("donner duex entiers n et p\n");

scanf("%d%d",&n,&p);

}while(n<0)&&(p<0);

int prod=produit(n,p);

printf("le produit de %d et %d est %d", n , p , prod);

return 0;

EX2
#include <stdio.h>

#include <stdlib.h>

intEstpuissance( int x , int y){

if(x==1){

return 1;

else if(x % y != 0){


return 0;

else{

returnEstpuissance(x / y ,y);

int main()

intx,y ;

printf("donner deux entiers x et y \n");

scanf("%d%d",&x,&y);

if(Estpuissance(x,y)){

printf("%d est puissance de %d ",x,y);

else{

printf("%d n'est pas puiss de %d ",x,y);

return 0;

EX3
#include <stdio.h>

#include <stdlib.h>

int Expo(int a, int b){

if (b==0){

return 1;

else if(b % 2 ==0){

return(Expo(a*a,b/2));

else{

return a*(Expo(a*a,b/2));

}
}

int main()

inta,b ;

do{

printf("donner deux entiers et b\n");

scanf("%d%d",&a,&b);

}while(a<0 && b<0);

int E=Expo(a,b);

printf(" %d expo %d egal a %d ",a,b,E);

return 0;

EX4
#include <stdio.h>

#include <stdlib.h>

intsommeT(int tab[] , int n){

if (n <= 0){

return 0;

else{

return tab[0] + sommeT(tab,n-1);

int main()

int tab[] = {1, 2, 3, 4, 5 , 6 , 7 ,8};

int res = sommeT(tab, sizeof(tab)/sizeof tab[0]);

printf("La somme des éléments du tableau est :%d ", res);

return 0;

}
EX5
#include <stdio.h>

#include <stdlib.h>

void pyramide( int n , char* s){

int i;

if (n==1){

printf("%s",s);

else{

for(i=0;i<n;i++){

printf("%s",s);}

printf("\n");

pyramide(n-1,s);

int main()

int n;

char* s;

printf("donner un entier n \n");

scanf("%d",&n);

pyramide(n,"bla");

return 0;

EX6
#include <stdio.h>

#include <stdlib.h>

int PremierCaractere(char* ch){

return ch[0];

int DernierCaractere(char* ch){


return ch[strlen(ch)-1];

int InterChaine(ch){

return strncpy(ch, ch[1], strlen(ch) - 2);

int pal(char* ch){

if (ch=="" || strlen(ch)==1){

return 1;

else if(PremierCaractere(ch)!= DernierCaractere(ch)){

return 0;

else{

return pal(InterChaine(ch));

int main()

printf("donner une chaine ch \n");

scanf("%s",ch);

if(pal(ch)){

printf("%s est palindrome",ch);

else{

printf("%s n'est pas palindrome ",ch);

return 0;

EX7 TP2

#include <stdio.h>

#include <stdlib.h>

intrecherche_dicho(int tab[], intdebut, int fin, int x) {

if (fin >= debut) {


int milieu = debut + (fin - debut) / 2;

if (tab[milieu] == x){

return milieu;

else if (tab[milieu] >x){

returnrecherche_dicho(tab, debut, milieu - 1, x);

else{

returnrecherche_dicho(tab, milieu + 1, fin, x);

int main()

int tab[] = {2, 3, 5, 7, 11, 13, 17};

int taille = sizeof(tab) / sizeof(tab[0]);

int x = 11;

intresultat = recherche_dicho(tab, 0, taille - 1, x);

if (resultat == -1)

printf("L'element %d n'est pas present dans le tableau.\n", x);

else

printf("L'element %d est present a la position %d dans le tableau.\n", x, resultat);

Vous aimerez peut-être aussi