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);
}
Voir ici comment convertir un nombre binaire en décimal.
 
 

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 numéro 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;
}
Voir ici comment convertir un nombre décimal en octal.
 
 

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;
}
Voir ici comment convertir un nombre octal en décimal.
 
 

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;
}
Voir ici comment convertir un nombre binaire en octal.
 
 

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;
}
Voir ici comment convertir un nombre octal en binaire.
 
 

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;
}
Voir ici comment convertir un nombre décimal en hexadécimal.
 
 

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;
}
Voir ici comment convertir un nombre hexadécimal en décimal.
 
 

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

Laisser un commentaire

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