Correction type
TP3 de
programmation C
Exercice 1 :
Code :
#include <stdio.h>
#include <stdlib.h>
float Max(float a,float b)
{
if (a<b) return b;
else return a;
}
float Min(float a,float b)
{
if (a<b) return a;
else return b;
}
int main()
{
float a,b,c,d,max,min;
printf("Entrez les quatre nombres:\n");
scanf("%f %f %f %f",&a,&b,&c,&d);
max=Max(Max(a,b),Max(c,d));
min=Min(Min(a,b),Min(c,d));
printf("Le maximum des quatre nombres est : %.2f \n",max);
printf("Le minimum des quatre nombres est : %.2f \n",min);
return 0;
} Exécution :
Exercice 2 :
Code :
#include <stdio.h>
#include <stdlib.h>
int Nchiffres(long int k)
{
int i=0;
do
{
k=k/10;
i++;
}
while (k>1 || k<-1);
return i;
}
int main()
{
long int k;
printf("Donner un entier:\n");
scanf("%ld",&k);
printf("Le nombre %ld a %d chiffres.",k,Nchiffres(k));
return 0;
}
Exécution :
Exercice 3 :
Code :
#include <stdio.h>
#include <stdlib.h>
int somme_div(int k)
{
int i,s=0;
for(i=1;i<=k/2;i++)
{
if (k%i==0) s=s+i;
}
return s;
}
int parfait(int k)
{
if (k==somme_div(k)) return 1;
else return 0;
}
int main()
{
int i,n;
printf("Donner la limite :\n");
scanf("%d",&n);
printf("Les nombres parfaits inferieurs ou egaux a %d sont :\n",n);
for (i=1;i<=n;i++)
{
if (parfait(i)==1) printf("%d\n",i);
}
return 0;
}
Exécution :
Exercice 4 :
Code :
#include <stdio.h>
#include <stdlib.h>
#define N 6
int main()
{
int T[N],aide,i;
int*P1,*P2;
P1=T;
P2=P1+N-1;
printf("Remplir le tableau:\n");
for (i=0;i<N;i++) scanf("%d",&T[i]);
do
{
aide=*P1;
*P1=*P2;
*P2=aide;
P1++;
P2--;
}
while (P2!=P1 && P2!=P1-1);
printf("Le tableau inverse :\n");
for (i=0;i<N;i++) printf("%d ",T[i]);
return 0;
}
Exécution :
Exercice 5 :
Code :
#include <stdio.h>
#include <stdlib.h>
#define N 5
int main()
{
int A[N],B[N],i,egal=1;
printf("Donner les elements du premier tableau :\n");
for (i=0;i<N;i++) scanf("%d",A+i);
printf("Donner les elements du deuxieme tableau :\n");
for (i=0;i<N;i++) scanf("%d",B+i);
for (i=0;i<N;i++)
{
if (*(A+i)!=*(B+i))
{
egal=0;
break;
}
}
if (egal==0) printf("FAUX");
else printf("VRAI");
return 0;
}
Exécution :
Exercice 6 :
Code :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char**P1,**P2,*aide;
char*phrase[10];
char tmp[200];
for (i=0;i<10;i++)
{
printf("Donner la phrase %d :\n",i+1);
gets(tmp);
*(phrase+i)=malloc(strlen(tmp));
strcpy(*(phrase+i),tmp);
}
P1=phrase;
P2=phrase+9;
do
{
aide=*P1;
*P1=*P2;
*P2=aide;
P1++;
P2--;
}
while (P2!=P1 && P2!=P1-1);
printf("Le tableau inverse :\n");
for (i=0;i<=9;i++)
{
printf("%s\n",*(phrase+i));
}
return 0;
}
Exécution :