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;
}
