400 Exercices Corrigés En C – Partie 11
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.
121. Écrire un programme C pour afficher la somme de n termes de nombres naturels pairs.
Exemple de sortie:
Entrez le nombre de termes: 5 Les nombres pairs sont: 2 4 6 8 10 La somme des nombres pairs jusqu'à 5 termes est 30
#include <stdio.h> int main() { int i, n, s=0; printf("Entrez le nombre de termes:"); scanf("%d", &n); if (n <= 0) { printf("Le nombre de termes doit être un nombre entier positif."); return 1; // Quitter le programme avec un code d'erreur. } printf("\nLes nombres pairs sont:"); // Démarrer une boucle pour générer des nombres pairs for (i = 1; i <= n; i++) { // Calculer le nombre pair int pair = 2 * i; // Affichez le nombre pair printf("%d ", pair); // Ajoutez le nombre pair à la somme s += pair; } printf("\nLa somme des nombres pairs jusqu'à %d termes est %d\n",n,s); return 0; // Renvoyer 0 pour indiquer que l'exécution est réussie }
122. Ecrivez un programme en C pour trouver la somme de la série [1 - X^2/2! + X^4/4! - ...].
Exemple de sortie:
Entrer la valeur de x: 4 Entrer le nombre de termes: 10 La somme = -0.653644 Valeur de x = 4.000000
#include <stdio.h> int main() { float x, tmp, d, s; int i, n; printf("Entrer la valeur de x:"); scanf("%f", &x); printf("Entrer le nombre de termes:"); scanf("%d", &n); /* Initialiser 's' à 1, car le premier terme est toujours égal à 1 */ s = 1; //Initialiser 't' à 1 pour le premier terme tmp = 1; // Boucle pour calculer la somme des séries for (i = 1; i < n; i++) { // Calculer le dénominateur du terme d = (2 * i) * (2 * i - 1); // Calculer la valeur du terme tmp = -tmp * x * x / d; // Additionner le terme à la somme s = s + tmp; } printf("\nLa somme = %f\nValeur de x = %f", s, x); return 0; }
123. Ecrivez un programme en C pour afficher les n termes d'une série harmonique et leur somme. 1 + 1/2 + 1/3 + 1/4 + 1/5 ... 1/n termes.
Exemple de sortie:
Entrer le nombre de termes: 6 1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 Somme des séries jusqu'à 6 termes est 2.450000
#include <stdio.h> int main() { int i, n; float sum = 0.0; //utilisé pour cumuler la somme printf("Entrer le nombre de termes:"); scanf("%d", &n); // Boucle pour calculer la somme des séries for (i = 1; i <= n; i++) { if (i < n) { // Afficher le terme avec un signe plus printf("1/%d + ", i); // Calculer et ajouter le terme à la somme sum += 1 / (float)i; } if (i == n) { // Afficher le dernier terme sans le signe plus printf("1/%d ", i); // Calculer et ajouter le terme à la somme sum += 1 / (float)i; } } printf("\nSomme des séries jusqu'à %d termes est %f", n, sum); return 0; }
124. Ecrivez un programme en C pour afficher la somme de la série [ 5 + 55 + 555 + 5555 ...].
Exemple de sortie:
Entrer le nombre de termes: 6 5 55 555 5555 55555 555555 La somme de la série est 617280
#include <stdio.h> int main() { long int n, i, tmp=5; int s=0; // pour stocker la somme printf("Entrer le nombre de termes:"); scanf("%ld", &n); // Boucle sur le nombre de termes for (i = 1; i <= n; i++) { s += tmp; // Ajouter 'tmp' à la somme // Afficher la valeur actuelle de 'tmp' printf("%ld ", tmp); // Mettre à jour 'tmp' pour la prochaine itération tmp = tmp * 10 + 5; } printf("\nLa somme de la série est %d", s); return 0; }
125. Ecrivez un programme en C pour trouver la somme de la série [x - x^3 + x^5 + ...].
Exemple de sortie:
Entrer la valeur de x: 4 Entrer le nombre de termes: 10 La somme = 54.154144
#include <stdio.h> int main() { int i, n; float x, n, s; printf("Entrer la valeur de x:"); scanf("%f", &x); printf("Entrer le nombre de termes:"); scanf("%d", &n); s = 1; //Initialiser 's' à 1 comme premier terme de la série n = 1; //Initialiser 'n' à 1 pour le calcul du premier terme //Boucle pour calculer les termes suivants de la série for (i = 1; i < n; i++) { //Calculez le terme suivant à l'aide de la formule donnée n = n * x / (float)i; s = s + n; //Ajouter le terme à la somme courante } printf("\nLa somme = %f", s); return 0; }
126. Ecrivez un programme C pour vérifier si un nombre donné est un nombre "parfait" ou non.
Un nombre parfait est un nombre entier positif qui est égal à la somme de ses diviseurs positifs, à l'exclusion du nombre lui-même. Exemple:
Exemple de sortie:
Entrer le nombre: 80 Le diviseur positif: 1 2 4 5 8 10 16 20 40 La somme du diviseur est: 106 Le nombre n'est donc pas parfait.
#include <stdio.h> int main() { int n, i, s; s = 0; // Initialiser la variable de somme printf("Entrer le nombre:"); scanf("%d", &n); printf("Le diviseur positif:"); // Boucle pour trouver et afficher les diviseurs positifs for (i = 1; i < n; i++) { if (n % i == 0) // Si 'i' est un diviseur de 'n' { s = s + i; // Ajoutez "i" à la somme printf("%d ", i); //Afficher 'i' en tant que diviseur positif } } printf("\nLa somme du diviseur est: %d", s); //Vérifiez si la somme des diviseurs est égale au nombre original if (s == n) printf("\nLe nombre est donc parfait."); else printf("\nLe nombre n'est donc pas parfait."); return 0; }
127. Écrire un programme C pour trouver les nombres "parfaits" compris dans un intervalle donné.
Exemple de sortie:
Entrer la plage de départ: 1 Entrer la plage de fin: 50 Les nombres parfaits dans l'intervalle donné sont 6 28
#include <stdio.h> int main(){ int n, i, sum; // Variables pour les plages de départ et de fin des nombres int start, end; printf("Entrer la plage de départ:"); scanf("%d", &start); printf("Entrer la plage de fin:"); scanf("%d", &end); printf("Les nombres parfaits dans l'intervalle donné sont "); // Boucle sur les nombres de la plage spécifiée. for(n = start; n <= end; n++){ i = 1; // Initialiser le diviseur. sum = 0; // Initialiser la somme des diviseurs. // Si le diviseur est inférieur au nombre testé. while(i < n){ if(n % i == 0) // Si 'i' est un diviseur de 'n'. sum = sum + i; // Ajoutez "i" à la somme. i++; // Incrémente le diviseur. } // Si la somme des diviseurs est égale au nombre original if(sum == n) printf("%d ", n); // Affichez le nombre parfait } return 0; }
128. Écrire un programme C pour vérifier si un nombre donné est un nombre Armstrong ou non.
Lorsque la somme du cube des chiffres d'un nombre est égale à ce nombre, on parle de nombre d'Armstrong. Par exemple, 153 est un nombre d'Armstrong car 153 = 13 + 53 + 33.
Exemple de sortie:
Entrer un nombre: 153 153 est un nombre Armstrong.
#include <stdio.h> void main(){ int n, r, s=0, tmp; printf("Entrer un nombre:"); scanf("%d",&n); // Lancer une boucle pour extraire les chiffres du nombre. for(tmp = n; n != 0; n = n/10){ r = n % 10; // Récupère le dernier chiffre du nombre. s = s + (r*r*r); //Calculez la somme des cubes de chaque chiffre } //Si la somme des cubes des chiffres est égale au nombre original if(s == tmp) printf("%d est un nombre Armstrong.",tmp); else printf("%d n'est pas un nombre Armstrong.",tmp); }
129. Écrire un programme C pour trouver le nombre Armstrong compris dans un intervalle donné.
Exemple de sortie:
Entrer la plage de départ: 1 Entrer la plage de fin: 400 Les nombres Armstrong dans l'intervalle donné sont 1 153 370 371
#include <stdio.h> int main() { int n, r, s, tmp; int start, end; printf("Entrer la plage de départ:"); scanf("%d", &start); printf("Entrer la plage de fin:"); scanf("%d", &end); printf("Les nombres Armstrong dans l'intervalle donné sont "); //Démarrer une boucle pour parcourir les nombres de la plage spécifiée for (n = start; n <= end; n++) { tmp = n; // Fixer 'tmp' au nombre actuel pour le manipuler. s = 0; // Initialiser 's' à zéro. // Démarrer une boucle pour extraire les chiffres de 'tmp'. while (tmp != 0) { r = tmp % 10; // Récupère le dernier chiffre de 'tmp'. tmp = tmp / 10; // Supprimer le dernier chiffre de 'tmp'. s = s + (r * r * r); //Calculez la somme des cubes de chaque chiffre } /* Si la somme des cubes des chiffres est égale au nombre original, le nombre est affiché comme un nombre d'Armstrong. */ if (s == n) printf("%d ", n); } return 0; }
130. Écrire un programme en C pour convertir un nombre décimal en binaire.
Exemple de sortie:
Entrer un nombre décimal: 5 Le nombre binaire est: 101
#include <stdio.h> #include <stdlib.h> int main(){ int tab[10],n,i; printf("Entrer un nombre décimal:"); scanf("%d",&n); for(i=0;n>0;i++) { tab[i]=n%2; n=n/2; } printf("\nLe nombre binaire est:"); for(i=i-1; i>=0; i--) { printf("%d",tab[i]); } return 0; }