Instructions en C - Applications résolues


1)Écrire un programme pour effectuer des opérations arithmétiques souhaités (+,-,/,*).
#include<stdio.h>
void main()
{	
int a,b;
	printf("Entrer a: ");
	scanf("%d", &a);
	printf("Entrer b: ");
	scanf("%d", &b);
	char x;
	getchar();
	printf("Entrez l'opération souhaitée (+ - * /): ");
    	scanf("%c", &x);
 	switch(x)
	{
		case '+': printf("a+b= %d", a+b); break;
		case '-': printf("a-b= %d", a-b); break;
		case '/': printf("a/b=%.2f",a/(float)b); break;
		case '*': printf("a*b= %d", a*b); break;
		default: printf("Operation inconnue");
	}
	getchar();
	int k;
	scanf("%d", k);
}

2) Ecrire un programme qui calcule la somme des n premiers nombres naturels avec for.
#include<stdio.h>
void main()
{
 	int n,s=0;
 	printf("Entrer n:");
 	scanf("%d",&n);
 	for(int i=1;i<=n;i++)
 	s+=i;   //s=s+i;
	printf("La somme des premiers %d nombres naturels est: %d\n",n,s);
 
 	getchar();
 	int k;
 	scanf("%d", k);
}

3) Ecrire un programme qui calcule la somme des n premiers nombres naturels avec while.
#include<stdio.h>
void main()
{
 int n, s=0, i=1;
 printf("Entrer n:");
 scanf("%d",&n);
 while(i<=n)
 {
	s+=i;   //s=s+i;
	i++;
 }
 printf("La somme des premiers %d nombres naturels est: %d\n",n,s);
 
	getchar();
	int k;
	scanf("%d", k);
}

4) Ecrire un programme qui calcule la somme des n premiers nombres naturels avec do while.
#include<stdio.h>
void main()
{
 int n, s=0, i=1;
 printf("Entrer n:");
 scanf("%d",&n);
 do
 {
	s+=i;   //s=s+i;
	i++;
 }
 while(i<=n)
 printf("La somme des premiers %d nombres naturels est: %d\n",n,s);
 
	getchar();
	int k;
	scanf("%d", k);
}

5) Ecrire un programme pour résoudre l'équation de degré II.
#include <stdio.h>
#include <math.h>
void main (void)
{
	int a,b,c;
	float x1,x2,d;
	printf("Entrez les coefficients de l'équation.\n");
	printf("\ta="); scanf("%d",&a);
	printf("\tb="); scanf("%d",&b);
	printf("\tc="); scanf("%d",&c);
	if(!a) //a==0
		if(!b)
			if(!c)
				printf("L'équation a une infinité de solutions.");
			else
				printf("L'équation n'a pas de solution.");
		else
			{
			x1=-c/(float)b;
			printf("Solution de l'équation est: %.2f.",x1);
			}
	else
		x1=-c/(float)b;
		printf("Solution de l'équation est: %.2f.",x1);
 
		{
			d=b*b-4*a*c;
			if(d<0)
				printf("L'équation n'a pas de solutions réelles.");
			else
				{
				x1=(-b-sqrt(d))/2*a;
				printf("Les solutions sont:\n\tx1 este: %.2f\n",x1);
				x2=(-b+sqrt(d))/2*a;
				printf("\tx2 est: %.2f\n",x2);
				}
		}
 
	getchar();
	int k;
	scanf("%d", k);
}

6) Ecrire un programme qui calcule la valeur de l'expression: S=1-2+3-4+....+, en utilisant les fonctions propres.
#include <stdio.h>
int somme1(int n)			// avec l'instruction FOR
{
	int s=0, i=1, sign=1;
	for(; i<=n; i++)
	{
		s+=sign*i;		//s=s+sign*i
		sign=-sign;
	}
	return s;
}
int somme2(int n)			// avec l'instruction WHILE
{
	int s=0, i=1, sign=1;
	while (i<=n)
		{
			s+=sign*i;	//s=s+sign*i
			sign=-sign;
			i++;
		}
	return s;
}
int somme3(int n)			// avec l'instruction DO WHILE
{
	int s=0, i=1, sign=1;
	do 
		{
			s+=sign*i;	//s=s+sign*i
			sign=-sign;
			i++;
		}
	while (i<=n);
	return s;
}
void main()
{
	int n;
	printf("Entrer n:");
	scanf("%d", &n);
 
	printf("\n\tLa somme calculée avec FOR a la valeur: %d" , somme1(n));
	printf("\n\tLa somme calculée avec WHILE a la valeur: %d" , somme2(n));
	printf("\n\tLa somme calculée avec DO WHILE a la valeur: %d" , somme3(n));
 
	getchar();
	int k;
	scanf("%d", k);
}

7) Écrire un programme qui calcule la valeur de l'expression: P=1*2*3*4*...*n.
#include<stdio.h>
int produit1(int n)		// avec l'instruction FOR
{
	int P=1;
	for(int i=1; i<=n; i++)
		P=P*i;
	return P;
}
int produit2(int n)		// avec l'instruction WHILE

{
	int P=1; int i=1;
	while(i<=n)
	{
		P=P*i;
		i++;
	}
	return P;
}
int produit3(int n)		// avec l'instruction DO WHILE
{
	int P=1; int i=1;
	do{
		P=P*i;
		i++;
	   }
	while(i<=n);
	return P;
}
void main()
{
	int n; 
	printf("Input n: ");
	scanf("%d", &n);
	printf("\n\tLe produit calculé avec FOR a la valeur: %d.\n" , produit1(n));
	printf("\n\tLe produit calculé avec WHILE a la valeur: %d.\n" , produit2(n));
	printf("\n\tLe produit calculé avec DO WHILE a la valeur: %d.\n" , produit3(n));
 
	getchar();
	int k;
	scanf("%d", k);
}

8) Ecrivez un programme qui calcule la valeur de l'expression: P=1*(1/2)*3*(1/4)*5*(1/6)*...n.
#include<stdio.h>
#include<math.h>
float produit1(int n)		//avec l’instruction FOR
{
	float p=1;
	float z=1;
	
	for(int i=1; i<=n; i++)
	{
		if (!(i%2))	/*on pourrait ecrire encore if(i%2==0) <=> tester si il est impaire*/
 
		{
			z=1/(float)i;
			p=p*z;
		}
	
		else p=p*i;	//pour impaire
	}
	return p;
}
float produit2(int n)		//avec l’instruction WHILE
{
	float p=1;
	float z=1;
	int i=1;
	while(i<=n)
	{
		if (!(i%2))	/*on pourrait ecrire encore if(i%2==0) <=> tester si il est impaire*/
 
		{
			z=1/(float)i;
			p=p*z;
		}
		else p=p*i;	//pour impaire
		i++;
	}
	return p;
}
float produit3(int n)		//avec l’instruction WHILE
{
	float p=1;
	float z=1;
	int i=1;
	do
	{
		if (!(i%2))	/*on pourrait ecrire encore if(i%2==0) <=> testes s’il est paire*/
		{
			z=1/(float)i;
			p=p*z;
		}
	
		else p=p*i;	//pour impaire
		i++;
	}
	while(i<=n);
	return p;
}
void main()
{
	int n;
	printf("Entrer n: ");
	scanf("%d", &n);
 
	printf("\nLe produit avec FOR est: %.5f\n", produit1(n));
	printf("\nLe produit avec WHILE est: %.5f\n", produit2(n));
	printf("\nLe produit avec DO WHILE est: %.5f\n", produit3(n));
 
	getchar();
	int k;
	scanf("%d", k);
}

9) Écrire un programme qui calcule la valeur de l'expression: S=1+1*2+1*2*3+1*2*3*4+1*2*3*4*5+...+1*2*...*n.
#include<stdio.h>
void main()
{
	int n;
	int s=0;
	int p=1;
 
	printf("Entrer n:");
	scanf("%d", &n);
 
	for(int i=1; i<=n; i++)
	{
		p=p*i;
		s=s+p;
	}
	printf("Le resultat est: %d", s);
 
	getchar();
	int k;
	scanf("%d", k);
}    

10) Écrivez un programme qui calcule x à la puissance y (en utilisant la fonction pow).
#include <math.h>
#include<stdio.h>
void main()
{
	double x, y, z; 
 
	printf("\nEntrer le coefficient: ");
	scanf("%lf", &x);
	printf("\n vous avez entré x= %.2lf", x);
 
	printf("\n\nEntrer le pouvoir: ");
	scanf("%lf", &y);
	printf("\n vous avez entré y= %.2lf", y);
 
	z=pow(x,y);
 
	printf("\n\n\%.2lf^%.2lf= %.2lf", x,y,z); 
 
	getchar();
	int k;
	scanf("%d", k);
}

11) On lit un texte composé de mots qui peuvent être séparés par des espaces ou des virgules. Texte lu à point final ou d'entrer. Pour compter les voyelles et les consonnes de ce texte.
#include<stdio.h>
void main()
{
int v=0;
	int c=0;
 
	printf("Entrer le texte: ");
 
	char k;
k=getchar(); /* lisez  un caractère, qui sera le premier texte qui sera envoyé aux variables k*/
 
	while(k!='.' && k!='\n')
	{
		if (k!=',' && k!=' ')
			switch (k)
		{
			case 'a':
			case 'A':
			case 'e':
			case 'E':
			case 'i':
			case 'I':
			case 'o':
			case 'O':
			case 'u':
			case 'U': v++;
			break;
			default: c++;
		}
		k=getchar(); //le caractère suivant du texte  sera envoyé à la variable k
	}
	printf("Le nombre des voyalles est: %u\n",v);
	printf("Le nombre desw consonnes est: %u\n",c);
 
 
	getchar();
	int z;
	scanf("%d", z);
}

12) On lit un texte composé de mots qui peuvent être séparés par des espaces ou des virgules. Texte lu à point final ou d'entrer. À compter les voyelles et les consonnes de ce texte. Résoudre le problème en utilisant une boucle répétitive postérieure conditionnelle.
#include<stdio.h>
void main()
{
	int v=0;
	int c=0;
	printf("Entrer le texte: ");
	char k;
 
	do
	{
		k=getchar();
		if (k!=',' && k!=' ' && k!='\n' && k!='.')
		switch (k)
		{
			case 'a':
			case 'A':
			case 'e':
			case 'E':
			case 'i':
			case 'I':
			case 'o':
			case 'O':
			case 'u':
			case 'U': v++;
			break;
			default: c++;
		}
	}
 
	while(k!='.' && k!='\n');
 
	printf("Le nombre des voyelles est %u\n",v);
	printf("Le nombre des consonnes est %u\n",c);
 
	getchar();
	int z;
	scanf("%d", z);
}

13) À compter le nombre de voyelles et de consonnes de l'alphabet, en utilisant l'instruction de saut "goto".
#include<stdio.h>
void main()
{
	int v=0;
	int c=0;
	char lettre='A';
	etiquette:
		switch (lettre)
		{
			
			case 'A':
			case 'E':
			case 'I':
			case 'O':
			case 'U': v++;
			break;
			default: c++;
		}
	lettre++;
	if(lettre<='Z') goto etiquette;
	printf("Le nombre des voyelles est %d\n",v);
	printf("Le nombre des consonnes est %d\n",c);
 
	getchar();
	int var;
	scanf("%d", var);
}

14) À afficher d'alphabet entier, seules grosses lettres, jusqu'à 'M'. La boucle se termine délibérément à l'aide de l'instruction break.
#include<stdio.h>
void main()
{
for(char lettre='A'; lettre<='Z'; lettre++)
{
		if(lettre=='M') break;
		printf("%c", lettre);
}
getchar();
	int var;
	scanf("%d", var);
}

15) De convertir un nombre de base 10 en base p, 2<=p<=10.
/* Nous partageons séquence x (nombre donné) à p, en retenant les ciffres de la base p dans un nombre xpi, 
qui sera renversé, pour obtenir le nombre xp, vu comme la representation dans la base p du x. 
Pour ne pas avoir des problemes au cas que la premiere ciffre du xpi sera 0, 
nous employons une incrementation avec 1 des ciffres dans la transformation x->xpi, 
soit un décrément pour la transformation xpi->xp. */
 
#include<stdio.h>
void main ()
{
int x,xpi,xp,p;
printf ("Entrer x en base 10:");
scanf ("%d",&x);
printf("Entrer la nouvelle base p:");
scanf("%d",&p);
//un autre moyen d’ecrire une instruction for
for (xpi=0; x; xpi=10*xpi+x%p+1,x=x/p);
for (xp=0; xpi; xp=10*xp+(xpi-1)%10,xpi=xpi/10);
printf("Le numdero en base %d est:%d",p,xp);
 
	getchar();
	int var;
	scanf("%d", var);
}
 
/* Remarque, dans cet exemple, l’utilisation de l'opérateur "," dans l’instruction for. 
Par exemple, le premier for c’est:
- on initialise xpi avec 0;
- combine de temps x est different de 0 on execute:
- xpi devient 10*xpi+x%p+1
- x se divise à p (et on fait la conversion).*/

16) Réaliser un programme qui dans une boucle while calculi la somme des ciffres d’un nombre introduit du clavier et affiche son inverse.
#include<stdio.h>
#include<math.h>
void main()
{
	int nr;
	int s=0;		//la somme des ciffres
	int inv=0;		//l’inverse du nombre
	printf("Entrer le nombre: ");
	scanf("%d",&nr);
	while (nr)		//sau while(n!=0)
	{
		s=s+nr%10;
		inv=inv*10+nr%10;
		nr/=10;
	}
/* l’instruction répétitive ci-dessus  l’on  pourrait écrire de façon: 
	while(ninv*=10,ninv+=n%10,s+=n%10,n/=10); */
	printf("La somme est: %d",s);
	printf("\nL’inverse est: %d",inv);
 
	getchar();
	int var;
	scanf("&d", var);
}

17) Etant donné trois nombres entiers pour déterminer si elles peuvent être les mesures d'un triangle, et si oui, calculer le périmètre.
#include<stdio.h>
int triangle(int a,int b,int c)
{ 
	if((a>0)&&(b>0)&&(c>0)&&(a<b+c)&&(b<a+c)&&(c<a+b))
		return 1;
	else 
		return 0;
}
void main()
{
	int a,b,c,s=0;
	printf("a= ");scanf("%d",&a);
	printf("b= ");scanf("%d",&b);
	printf("c= ");scanf("%d",&c);
	if(triunghi(a,b,c)==1)
	{
		s=a+b+c;
		printf("le périmètre ABC est: %d",s);
	}
	else
 printf("Ce n’est pas triangle");
 
	getchar();
	int var;
	scanf("&d", var);
}

18) Calculez la valeur de la function f définie sur l'ensemble des nombres réels pour un x lu:
  | x-3, ptr. x<5
   F=| x+1, ptr. 5>x>25
     | x-5x+6,ptr. x>25
#include<stdio.h>
void main()
{
	int x;
	printf("Entrer le nombre: ");
	scanf("%d",&x);
 
	if(x>=5&&x<=25)
	printf("F(x)= %d",x+1);
	else
	{
		if(x<5)
			printf("F(x)= %d",x-3);
		else
			printf("F(x)= %d",x-5*x+6);
	}
	getchar();
	int var;
	scanf("&d", var);
}

19) Affichez la somme des ciffres d’un nombre naturel donné. Precision: On detache chaque ciffre de la fin du nombre en calculant le resultat de la division du numero en 10; le numero qui reste après la separation de la ciffre est le resultat de la division à 10.
#include<stdio.h>
void main()
{
	int n,s=0;
	printf("n= ");scanf("%d",&n);
	while(n!=0)
	{
		s=s+n%10;
		n=n/10;
	}
	printf("La somme des ciffres est: %d",s);
 
	getchar();
	int var;
	scanf("&d", var);
}

20) Calculez la somme S=1!+2!+3!+...+n!
#include<stdio.h>
int factoriel(int n)
{
	int p=1;
	for(int i=1;i<=n;i++)
	p*=i;
	return p;
}
void main()
{
	int m,i,s=0;
	printf("\n\tEntrer le nombre: ");scanf("%d",&m);
	for(i=1;i<=m;i++)
	s=s+factoriel(i);
	printf("\tLa somme est: %d",s);
	getchar();
	int var;
	scanf("&d", var);
}

21) Calculez le produit P=2*4*6*8*10*...*n, où n=2k.
#include<stdio.h>
void main()
{
	int n,i,p=1;
	printf("Entrer le nombre: ");
	scanf("%d",&n);
	n=n*2;
 
	for(i=2;i<=n;i++)
	{
		if (!(i%2))	/*on pourrait ecrire aussi if(i%2==0) <=> tester s’il est paire*/
			p*=i;		
	}
 	printf("Le produit est: %d",p);
	getchar();
	int var;
	scanf("&d", var);
}

22) Calculez la somme S=1^2+2^2+3^2+4^2+...+n^2.
#include<stdio.h>
void main()
{
	int n,s=0,i;
	printf("n= ");
	scanf("%d",&n);
 
	for(i=1;i<=n;i++)
	s=s+i*i;
 
	printf("La somme est egale avec: %d",s);
	
	getchar();
	int var;
	scanf("&d", var);
}

23) Calculez la somme S=1-1*2+1*2*3-...±1*2*3*...*n.
#include<stdio.h>
int factoriel(int n)
{
	int p=1;
	for(int i=1;i<=n;i++)
	p*=i;
	return p;}
 
void main()
 
{
	int n,i,s=0,sign=1;
	printf("n= ");scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		s=s+sign*factoriel(i);
		sign=-1;
	}
	printf("La somme est egale avec: %d",s);
	
	getchar();
	int var;
	scanf("&d", var);
}

24) Transformez un nombre de la base 10 dans la base p<10.
#include<stdio.h>
void main()
{
	int n,m,p,y=0,c;
	printf("Le nombre dans la base 10 est: ");scanf("%d",&n);
	printf("La base pour convertir est: ");scanf("%d",&p);
 
	while(n!=0)
	{
		c=n%p;
		y=y*10+c;
		n=n/p;
	}
 
	printf("Le numero dans la base %d est: %d",p,y);
	
	getchar();
	int var;
	scanf("&d", var);

}
Cookies help us deliver our services. By using our services, you agree to our use of cookies.