400 Exercices Corrigés En C – Partie 3

La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec le langage C et programmation. Nous espérons que ces exercices vous aideront à améliorer vos compétences sur le langage C et programmation. Les exercices corrigés suivantes sont actuellement disponibles, nous travaillons dur pour ajouter plus d’exercices. Bon apprentissage!

Vous pouvez lire notre tutoriel sur le langage C avant de résoudre les exercices suivants.

 
 

Veuillez voir les exercices de 1 à 30 et de 31 à 40.

 

41. Un magasin offre à ses clients 25% de réduction sur les montants d’achat supérieurs à 500 €. Ecrivez un programme en C qui permet d’entrer le prix total hors TVA et de calculer le montant TTC en tenant compte de la remise et du fait que la TVA = 20%.

Exemple de sortie:

Entrer le montant HT: 100
Le montant TTC est: 120.0

Remarque: PrixTTC = PrixHT + (PrixHT * TVA)

#include <stdio.h>

int main()
{
	float HT,TTC;
	
	printf("Entrer le montant HT:");
	scanf("%f", &HT);
	
	TTC = HT + HT * 0.2 ;
	
	if (TTC > 500) {
		TTC = TTC - TTC * 0.25;  // Appliquer la réduction 
		printf("Le montant TTC est: %f", TTC);
	}else{ 
		printf("Le montant TTC est: %f", TTC);
	}

	return 0; 
}
 
 

42. Écrire un programme en C qui demande à l’utilisateur deux nombres n1 et n2 et lui indique ensuite si le produit de ces deux nombres est positif ou négatif. On prévoit dans le programme le cas où le produit peut être nul.

Exemple de sortie:

Entrer le 1er nombre:  -1.5
Entrer le 2éme nombre:  3
Le produit est négatif
-----------------------------
Entrer le 1er nombre:   1
Entrer le 2éme nombre:  3
Le produit est positif
-----------------------------
Entrer le 1er nombre:   0
Entrer le 2éme nombre:  3
Le produit est nul
#include <stdio.h>

int main()
{
	float n1,n2;
	
	printf("Entrer le 1er nombre:"); 
	scanf("%f", &n1);
	printf("Entrer le 2éme nombre:"); 
	scanf("%f", &n2);
	
	if(n1 == 0 || n2 == 0)
		printf("Le produit est nul");
		
	if (n1*n2 < 0)
		printf("Le produit est négatif");
		
	if (n1*n2 > 0)  
		printf("Le produit est positif");

	return 0; 
}
 
 

43. Écrire un programme en C qui permette d’ajouter un commentaire sur le score saisi au clavier (si le score est supérieur à 10 alors il affiche « GOOD! » sinon « NOT GOOD! » (NB: le score est compris entre 0 et 20!).

Exemple de sortie:

Entrer le score: 15.5
GOOD!
------------------
Entrer le score: 5
NOT GOOD!
------------------
Entrer le score: -5
Score invalide!
#include <stdio.h>

int main()
{
	float score;
	printf("Entrer le score:"); 
	scanf("%f",&score);

	if (score < 0  || score > 20)
		printf("Score invalide!");
	if (score >= 0 && score < 10)
		printf("NOT GOOD!");
	if (score >= 10 && score <= 20)
		printf("GOOD!");

	return 0; 
}
 
 

44. Le service de photocopie de votre université facture 0,50 € pour les 10 premières photocopies, 0,45 € pour les 20 suivantes et 0,30 € au-delà de 30 photocopies. Ecrivez un programme en C qui demande à l'utilisateur le nombre de photocopies réalisées et affiche la facture correspondante.

Exemple de sortie:

Entrez le nombre de papies: 25
Le prix total est: 11.25 €
#include <stdio.h>

int main()
{
	int N;	
	float prix;
	
	printf("Entrer le nombre de papies:");
	scanf("%d", &N);
	
	if(N <= 20) 
		prix = N * 0.50;
		
	if(N > 10 && N <= 30) 
		prix = N * 0.45;
		
	if(N > 30) 
		prix = N * 0.30;
   
	printf("Le prix total est: %.2f €", prix);

	return 0; 
}
 
 

45. Ecrivez un programme en C qui teste l'égalité de deux tableaux de nombres entiers (tailles 5). Le programme affiche TRUE si les éléments des deux tableaux correspondent, sinon il affiche FALSE.

Exemple de sortie:

1	2	3	4	5
1	2	3	4	5
TRUE

10	20	30	40	50
20	30	40	50	60
FALSE
#include <stdio.h>

int main()
{
	int i,not_equal=0,tab1[10],tab2[10];
	
	//remplir tab1
	for(i=0; i<10; i++){
		scanf("%d", &tab1[i]);
	}
	printf("\n");
	
	//remplir tab2
	for(i=0; i<10; i++){
		scanf("%d", &tab2[i]);
	}

	for(i=0; i<10; i++) {
		//vérifier l'égalité
		if(tab1[i] != tab2[i]) 
			not_equal = 1;
	}
	
	if (not_equal == 0) 
		printf("TRUE");
	else  
		printf ("FALSE");

	return 0; 
}
 
 

46. Écrire un programme en C qui permet la saisie de 5 nombres et qui calcule la différence entre la somme des nombres pairs et la somme des nombres impairs.

Par exemple : 3 5 2 4 6 => (2+4+6) - (3+5) = 4

Exemple de sortie:

Entrer un nombre: 3
Entrer un nombre: 5
Entrer un nombre: 2
Entrer un nombre: 4
Entrer un nombre: 6
La différence égale à 4
#include <stdio.h>

int main()
{
	int tab[10],sum,i;

	sum = 0;
	for(i=0; i < 10; i++){
		printf("Entrer un nombre:"); 
		scanf("%d", &tab[i]);
		
		if(tab[i] % 2 == 0)
			sum = sum + tab[i];
		else
			sum = sum - tab[i];
	}
 
	printf("La différence égale à %d", sum);

	return 0; 
}
 
 

47. Écrire un programme en C qui permet à l'utilisateur d'entrer une série de nombres se terminant par 0, et qui affiche à la fin le nombre d'occurrences du nombre 3.

Exemple de sortie:

2	8	3	1	3	3	6	3	0
3 existe 4 fois
#include <stdio.h>

int main()
{
	int Nbr,i=0;

	do{ 
		scanf("%d", &Nbr);
		
		if(Nbr == 3){
			i = i + 1;
		}			   
	}while(Nbr != 0);
  
	if(i != 0) 
		printf("3 existe %d fois", i);
	else   
		printf("3 n'existe pas");  

	return 0; 
}

Le programme ci-dessus, invite l'utilisateur à saisir des nombres entiers jusqu'à ce qu'il entre 0. Le code à l'intérieur de la boucle do-while sera exécuté au moins une fois avant de vérifier la condition de la boucle. La boucle se répète tant que l'utilisateur n'entre pas 0. On vérifie si le nombre saisi est égale à 3. Si c'est le cas on incrémente le compteur i. Après on vérifie if(i != 0) alors il existe un nombre d’occurrence du nombre spécifié sinon il n'existe pas.

 
 

48. Écrire un programme en C pour afficher les mois en lettres en fonction du nombre saisi par l'utilisateur.

Exemple de sortie:

Entrer le numéro du mois: 1
Janvier

Entrer le numéro du mois: 3
Mars

Entrer le numéro du mois: 12
Décembre
#include <stdio.h>

int main()
{
	int M;
	
	printf("Entrer le numéro du mois:");
	scanf("%d", &M);
	
	switch (M) {
	case 1:
	  printf("Janvier"); break;
	case 2:
	  printf("Février"); break;
	case 3:
	  printf("Mars"); break;
	case 4:
	  printf("Avril"); break;
	case 5:
	  printf("Mai"); break;
	case 6:
	  printf("Juin"); break;
	case 7:
	  printf("Juille"); break;
	case 8:
	  printf("Aout"); break;
	case 9:
	  printf("Septembre"); break;
	case 10:
	  printf("Octobre"); break;
	case 11:
	  printf("Novembre"); break;
	case 12:
	  printf("Décembre"); break;
	default:
	  printf("Aucun mois ne correspondant!");
	  break;   
	}  

	return 0; 
}

L'instruction switch est une instruction de contrôle de flux dans laquelle nous pouvons définir une variable changeante et exécuter ensuite un code différent en fonction de la valeur de la variable changeante. C'est une alternative à If-Else.

 
 

49. Écrire un programme en C qui calcule les nombres de Fibonacci jusqu'à 50.

Exemple de sortie:

Fibonacci jusqu'à 50: 1  1  2  3  5  8  13  21  34
#include <stdio.h>

int main() {

  int i,n;

  // initialiser le 1er et le 2ème terme
  int t1=0, t2=1;

  // initialiser le terme suivant (3ème terme)
  int suivant = t1 + t2;

  // afficher les deux premiers termes t1 et t2
  printf("Fibonacci jusqu'à 50: %d, %d, ", t1, t2);

  // afficher les termes de la 3ème à la 50ème position
  for (i = 3; i <= 50; ++i) {
    printf("%d, ", suivant);
    t1 = t2;
    t2 = suivant;
    suivant = t1 + t2;
  }

  return 0;
}

La série de Fibonacci est une suite de nombres où chaque nombre est la somme des deux nombres précédents.

 
 

50. Écrire un programme en C qui calculera une somme courante. L'utilisateur saisira des nombres qui seront ajoutés à la somme et, lorsqu'un nombre négatif sera rencontré, arrêtera d'ajouter des nombres et écrira le résultat final.

Exemple de sortie:

1 2 3 4 -1
La somme est 10
#include <stdio.h>

int main()
{
	int Nbr,sum=0;

	do{ 
		scanf("%d", &Nbr);
		sum = Nbr + sum 			   
	}while(Nbr >= 0);
  
	printf("La somme est %d",sum); 

	return 0; 
}
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *