400 Exercices Corrigés En C – Partie 12
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.
131. Écrire un programme en C pour convertir un nombre binaire en décimal.
Exemple de sortie:
Entrer un nombre binaire: 101 Le nombre décimal est: 5
#include <stdio.h> void main() { int dec = 0, base = 1, r; printf("Entrer un nombre binaire: "); scanf("%d", &bin); while (bin > 0) { r = bin % 10; dec = dec + r * base; bin = bin / 10 ; base = base * 2; } printf("Le nombre décimal est: %d", dec); }
132. Ecrivez un programme C pour vérifier si un nombre est un nombre fort ou non.

Exemple de sortie:
Entrer un nombre: 10 10 n'est pas un nombre fort.
#include <stdio.h> void main() { int i, j, nbr, orig, sum = 0; long fact; printf("Entrer un nombre:"); scanf("%d", &nbr); orig = nbr; //Garder le nombre original à des fins de comparaison. // Boucle pour traiter chaque chiffre du nombre. for (j = nbr; j > 0; j = j / 10) { fact = 1; // Initialiser la factorielle. // Boucle pour calculer la factorielle d'un chiffre. for (i = 1; i <= j % 10; i++) { fact = fact * i; } sum = sum + fact; // Calculer la somme factorielle. } if (sum == orig) { printf("\n%d est un nombre fort.", orig); } else { printf("\n%d n'est pas un nombre fort.", orig); } }
133. Écrire un programme C pour trouver les nombres forts dans une plage donnée de nombres.
Exemple de sortie:
Entrer la plage de départ: 1 Entrer la plage de fin: 300 Les nombres forts dans l'intervalle donné sont 1 2 145
#include <stdio.h> void main() { int i, j, k, orig, end, start, sum=0; long fact; printf("Entrer la plage de départ:"); scanf("%d", &start); printf("Entrer la plage de fin:"); scanf("%d", &end); printf("Les nombres forts dans l'intervalle donné sont "); // Boucle pour traiter chaque nombre dans la plage donnée for (k = start; k <= end; k++) { orig = k; // Garder le nombre original à des fins de comparaison sum = 0; // Réinitialiser la somme factorielle // Boucle pour traiter chaque chiffre du nombre for (j = k; j > 0; j = j / 10) { fact = 1; // Initialiser la factorielle // Boucle pour calculer la factorielle d'un chiffre for (i = 1; i <= j % 10; i++) { fact = fact * i; } sum = sum + fact; // Accumuler la somme factorielle } if (sum == orig) { printf("%d ", orig); // Affichez le nombre fort } } }
134. Écrire un programme en C pour convertir un nombre décimal en octal.
Exemple de sortie:
Entrer un nombre décimal: 25 Le nombre octal est: 31
#include <stdio.h> int main() { long decimal, quotient, octal=0; int octalNbr[100], i = 1, j; printf("Entrer un nombre décimal:"); scanf("%ld", &decimal); quotient = decimal; //Stocker les restes jusqu'à ce que le nombre soit égal à zéro while (quotient != 0) { octalNbr[i++] = quotient % 8; quotient = quotient / 8; } //Convertir les valeurs de reste stockées en nombre octal for (j = i - 1; j > 0; j--) octal = octal*10 + octalNbr[j]; printf("Le nombre octal est: %d", octal); return 0; }
135. Écrire un programme en C pour convertir un nombre octal en décimal.
Exemple de sortie:
Entrer un nombre octal: 31 Le nombre décimal est: 25
#include <stdio.h> #include <math.h> int main() { int oct, dec=0; int i = 0; printf("Entrer un nombre octal:"); scanf("%ld", &oct); while (oct != 0) { dec = dec +(oct % 10)* pow(8, i++); oct = oct / 10; } printf("Le nombre décimal est: %d", dec); return 0; }
136. Écrire un programme C pour convertir un nombre binaire en octal.
Exemple de sortie:
Entrer un nombre binaire: 101 Le nombre octal est: 5
#include <stdio.h> int main(){ int bin, oct = 0, j = 1, r; printf("Entrer un nombre binaire:"); scanf("%ld", &bin); while (bin != 0) { r = bin % 10; oct = oct + r * j; j = j * 2; bin = bin / 10; } printf("Le nombre octal est: %d", oct); return 0; }
137. Écrire un programme C pour convertir un nombre octal en binaire.
Exemple de sortie:
Entrer un nombre octal: 5 Le nombre binaire est: 101
#include <stdio.h> int main(){ char oct[1000]; long i = 0; printf("Entrer un nombre octal: "); scanf("%s", oct); printf("Le nombre binaire est: "); while (oct[i]) { switch (oct[i]){ case '0': printf("000"); break; case '1': printf("001"); break; case '2': printf("010"); break; case '3': printf("011"); break; case '4': printf("100"); break; case '5': printf("101"); break; case '6': printf("110"); break; case '7': printf("111"); break; default: printf("\n Chiffre octal non valide %c ", oct[i]); return 0; } i++; } return 0; }
138. Écrire un programme C pour convertir un nombre décimal en hexadécimal.
Exemple de sortie:
Entrer un nombre décimal: 10 Le nombre hexadécimal est: A
#include <stdio.h> int main(){ long dec, quotient, r; int i, j = 0; char hex[100]; printf("Entrer un nombre décimal: "); scanf("%ld", &dec); quotient = dec; while (quotient != 0) { r = quotient % 16; if (r < 10) hex[j++] = 48 + r; else hex[j++] = 55 + r; quotient = quotient / 16; } printf("Le nombre hexadécimal est: "); // afficher un nombre entier en tant que caractère for (i = j; i >= 0; i--) printf("%c", hex[i]); return 0; }
139. Écrire un programme C pour convertir un nombre hexadécimal en décimal.
Exemple de sortie:
Entrer un nombre hexadécimal: A Le nombre décimal est: 10
#include <stdio.h> #include <string.h> #include <math.h> int main() { char hex[17]; int dec = 0, base = 1, size, i, value; printf("Entrer un nombre hexadécimal: "); scanf("%16s", hex); size = strlen(hex); // Processus de conversion for(i = size - 1; i >= 0; i--) { if(hex[i] >= '0' && hex[i] <= '9') { value = hex[i] - '0'; } else if(hex[i] >= 'A' && hex[i] <= 'F') { value = hex[i] - 'A' + 10; } dec += value * base; base = base * 16; } printf("Le nombre décimal est: %d", dec); return 0; }
140. Ecrire un programme en C pour vérifier si un nombre peut être exprimé comme la somme de deux nombres premiers.
Exemple de sortie:
Entrer un nombre entier positif: 16 16 peut s'écrire comme suit 5 + 11. 16 peut s'écrire comme suit 3 + 13.
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int nbr, i, j, tmp1, tmp2, compteur=0; printf("Entrer un nombre entier positif: "); scanf("%d", &nbr); /* Boucle pour trouver des paires de nombres dont la somme est égale à "nbr". */ for(i = 2; i<= nbr/2; i++){ tmp1 = i; tmp2 = nbr - i; // Vérifier si 'i' est un nombre premier for(j = 2; j <= i/2; j++){ if(i % j == 0){ compteur++; break; } } /* Si 'i' est un nombre premier, vérifier si 'nbr - i' est également premier */ if(compteur == 0){ for(j = 2; j <= (nbr - i)/2; j++){ if((nbr - i) % j == 0){ compteur++; break; } } /* Si 'i' et 'nbr - i' sont tous les deux premiers, afficher la paire */ if(compteur == 0) printf("%d peut s'écrire comme suit %d + %d", nbr,i,nbr-i); } // Réinitialisation du compteur compteur = 0; } return 0; }