Exercices Corrigés En C – Boucle for
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.
1. Ecrivez un programme en C qui affiche « Hello » 10 fois. En utilisant la boucle « for ».
Exemple de sortie:
Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello
#include <stdio.h> int main() { int i; for (i= 0; i < 10; i++) { printf("Hello\n"); } return 0; }
2. Ecrivez un programme en C qui calcule la somme de 1 à 10. En utilisant la boucle "for".
Indication:
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
Exemple de sortie:
La somme de 1 à 10 est 55
#include <stdio.h> int main() { int i, sum=0; for (i=1; i<=10; i++){ sum = sum + i ; } printf("La somme de 1 à 10 est: %d" , sum); return 0; }
3. Ecrivez un programme en C qui calcule la somme de 1 à N, où N est saisi par l'utilisateur. En utilisant la boucle "for".
Indication:
1 + 2 + 3 + 4 + 5 + 6 + 7 = 28
Exemple de sortie:
Entrer un nombre: 7 La somme de 1 à 7 est 28
#include <stdio.h> int main() { int i,sum=0,n; printf("Entrer un nombre:"); scanf("%d",&n); for(i=1; i<=n; i++){ sum = sum + i; } printf("La somme de 1 à n est: %d",n,sum); return 0; }
4. Écrire un programme en C qui affiche la table de multiplication de 3. En utilisant la boucle "for".
Exemple de sortie:
3 x 0 = 0 3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27 3 x 10= 30
#include <stdio.h> int main() { int i; for (i=0; i<=10 ; i++){ printf("3 x %d = %d \n",i,i*3); } return 0; }
5. Écrire un programme en C qui affiche la table de multiplication d'un entier saisi par l'utilisateur, en utilisant la boucle "for".
Exemple de sortie:
Entrer un nombre: 7 7 x 0 = 0 7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63 7 x 10= 70
#include <stdio.h> int main() { int i,n; printf("Entrer un entier:"); scanf("%d",&n); for(i=1; i<=10; i++){ printf("%d x %d = %d\n",n,i,i*n); } return 0; }
6. Écrire un programme en C pour calculer la factorielle d'un nombre entier saisi par l'utilisateur. (Remarque: le factoriel de 5, qui s'écrit 5! = 5 × 4 × 3 × 2 × 1).
Exemple de sortie:
Saisir un nombre : 5 Le factoriel de 5 est: 120
#include <stdio.h> int main() { int nbr,f=1,i; printf("Saisir un nombre:"); scanf("%d",&nbr); for(i=1; i<=nbr; i++){ f = f * i; } printf("Le factoriel de %d est: %d",nbr,f); return 0; }
7. Écrire un programme en C pour afficher les nombres pairs entre 0 et N, où N est saisi par l'utilisateur.
Exemple de sortie:
Entrer un nombre : 9 0 2 4 6 8
#include <stdio.h> int main() { int i,n; printf("Entrer un nombre: "); scanf("%d",&n); for(i=0; i<=n; i++){ if (i%2 == 0) printf(" %d ",i); } return 0; }
8. Ecrivez un programme en C qui calcule la somme des nombres impairs compris entre 1 et un nombre entier N saisi par l'utilisateur. Exemple N=10 Somme=1+3+5+7+9=25
Exemple de sortie:
Entrer un nombre : 10 La somme des nombres impairs est: 25
#include <stdio.h> int main() { int n,i,sum=0; printf("Entrer un nombre:"); scanf("%d",&n); for(i=1; i<=n; i++){ if(i%2 != 0) sum = sum + i; } printf("La somme des nombres impairs est: %d",sum); return 0; }
9. Écrire un programme en C qui affiche un triangle d'entiers, en fonction d'un entier N saisi par l'utilisateur.
Exemple de sortie:
Donner un nombre: 7 1 22 333 4444 55555 666666 7777777
#include <stdio.h> int main() { int n,i,j; printf("Donner un nombre:"); scanf("%d",&n); for(i=1; i<=n; i++){ for(j=1; j<=i; j++){ printf("%d",i); } printf("\n"); } return 0; }
10. Écrire un programme en C pour afficher les 10 premiers nombres naturels.
Exemple de sortie:
Les 10 premiers entiers naturels sont: 1 2 3 4 5 6 7 8 9 10
#include <stdio.h> int main() { int i; printf("Les 10 premiers entiers naturels sont:\n"); for (i = 1; i <= 10; i++) { printf("%d ", i); } // Renvoyer 0 pour indiquer que l'exécution est réussie return 0; }
11. Écrire un programme C pour calculer la somme des 10 premiers nombres naturels.
Exemple de sortie:
Les 10 premiers entiers naturels sont: 1 2 3 4 5 6 7 8 9 10 La somme est: 55
#include <stdio.h> int main() { int i, s=0; printf("Les 10 premiers entiers naturels sont:\n"); for (i = 1; i <= 10; i++) { s = s + i; printf("%d ",i); } printf("\nLa somme est: %d", s); }
12. Écrire un programme en C pour afficher n éléments du nombre naturel et leur somme.
Exemple de sortie:
Entrée le nombre des éléments: 5 Les 5 premiers entiers naturels sont: 1 2 3 4 5 La somme des nombres naturels jusqu'à 5 termes est 15.
#include <stdio.h> int main() { int i, n, s=0; printf("Entrée le nombre des éléments:"); scanf("%d", &n); printf("\nLes %d premiers entiers naturels sont:\n", n); // Démarrez une boucle for pour itérer de 1 à 'n' for (i = 1; i <= n; i++) { // Afficher la valeur actuelle de "i" printf("%d ", i); // Ajouter la valeur actuelle de "i" à la somme s += i; } printf("\nLa somme des nombres naturels jusqu'à %d termes est %d.", n, s); return 0; }
13. Écrire un programme en C pour lire 10 nombres à partir du clavier et trouver leur somme et leur moyenne.
Exemple de sortie:
Saisir les 10 nombres: Nombre-1: 2 Nombre-2: 6 .... Nombre-10: 3 La somme est: 45 La moyenne est: 4.500000
#include <stdio.h> int main() { int i, n, s=0; float m; printf("Saisir les 10 nombres:\n"); for (i = 1; i <= 10; i++) { printf("Nombre-%d:", i); scanf("%d", &n); s += n; } m = s / 10.0; // Calculer la moyenne printf("La somme est:%d\nLa moyenne est:%f",s,m); return 0; }
14. Écrire un programme en C pour afficher le cube du nombre jusqu'à un entier N donné en utilisant la boucle 'for'.
Exemple de sortie:
Entrée le nombre des éléments: 4 Le nombre est: 1 et le cube de 1 est: 1 Le nombre est: 2 et le cube de 2 est: 8 Le nombre est: 3 et le cube de 3 est: 27 Le nombre est: 4 et le cube de 4 est: 64
#include <stdio.h> int main() { int i, n; printf("Entrée le nombre des éléments:"); scanf("%d", &n); for (i = 1; i <= n; i++) { printf("Le nombre est: %d et le cube de %d est: %d\n",i,i,(i*i*i)); } return 0; }
15. Écrire un programme en C pour afficher une forme de triangle droit à l'aide des étoiles. En utilisant la boucle 'for'.
Exemple de sortie:
Entrer le nombre de lignes: 4 * ** *** ****
#include <stdio.h> int main() { int i, j, n; printf("Entrer le nombre de lignes:"); scanf("%d", &n); // Démarrer une boucle pour générer les lignes des étoiles for (i = 1; i <= n; i++) { /* Boucle imbriquée pour afficher les étoiles en fonction de la ligne actuelle */ for (j = 1; j <= i; j++){ // Afficher une étoile printf("*"); } printf("\n"); // Passez à la ligne suivante } return 0; }
16. Écrire un programme en C pour afficher une forme de triangle droit à l'aide des nombres. En utilisant la boucle 'for'.
Exemple de sortie:
Entrer le nombre de lignes: 4 1 12 123 1234
#include <stdio.h> int main() { int i, j, n; printf("Entrer le nombre de lignes:"); scanf("%d", &n); // Démarrer une boucle pour générer les lignes des étoiles for (i = 1; i <= n; i++) { /* Boucle imbriquée pour afficher les étoiles en fonction de la ligne actuelle */ for (j = 1; j <= i; j++){ // Afficher la valeur de j printf("%d", j); } printf("\n"); // Passez à la ligne suivante } return 0; }
17. Écrire un programme en C pour afficher une forme de triangle droit avec un nombre qui répétera un nombre dans une ligne. En utilisant la boucle 'for'.
Exemple de sortie:
Entrer le nombre de lignes: 4 1 22 333 4444
#include <stdio.h> int main() { int i, j, n; printf("Entrer le nombre de lignes:"); scanf("%d", &n); // Démarrer une boucle pour générer les lignes des étoiles for (i = 1; i <= n; i++) { /* Boucle imbriquée pour afficher les étoiles en fonction de la ligne actuelle */ for (j = 1; j <= i; j++){ // Afficher la valeur de i printf("%d", i); } printf("\n"); // Passez à la ligne suivante } return 0; }
18. Écrire un programme en C pour afficher une forme de triangle droit avec un nombre qui s'incrémente de 1. En utilisant la boucle 'for'.
Exemple de sortie:
Entrer le nombre de lignes: 4 1 2 3 4 5 6 7 8 9 10
#include <stdio.h> int main() { int i, j, n, k = 1; printf("Entrer le nombre de lignes:"); scanf("%d", &n); // Démarrer une boucle pour générer les lignes for (i = 1; i <= n; i++) { /* Boucle imbriquée pour afficher les étoiles en fonction de la ligne actuelle */ for (j = 1; j <= i; j++){ // Afficher la valeur de k et incrémentez-le printf("%d ", k++); } printf("\n"); // Passez à la ligne suivante } return 0; }
19. Ecrivez un programme en C pour créer une pyramide avec des nombres qui s'incrémente de 1. En utilisant la boucle 'for'.
Exemple de sortie:
Entrer le nombre de lignes: 4 1 2 3 4 5 6 7 8 9 10
#include <stdio.h> int main() { int i, j, espace, n, k, t = 1; printf("Entrer le nombre de lignes:"); scanf("%d", &n); espace = n + 4 - 1; // Calculer le nombre initial d'espaces // Démarrer une boucle pour générer les lignes for (i = 1; i <= n; i++) { //Boucle pour afficher les espaces avant les nombres for (k = espace; k >= 1; k--) { printf(" "); } //Boucle pour afficher les nombres basés sur la ligne actuelle for (j = 1; j <= i; j++) { printf("%d ", t++); // Afficher la valeur de 't' et l'incrémenter } printf("\n"); // Passez à la ligne suivante espace--; // Décrémenter le nombre d'espaces pour la ligne suivante } return 0; }
20. Ecrivez un programme C pour créer une pyramide avec des étoiles. En utilisant la boucle 'for'.
Exemple de sortie:
Entrer le nombre de lignes: 4 * * * * * * * * * *
#include <stdio.h> int main() { int i, j, espace, n, k, t = 1; printf("Entrer le nombre de lignes:"); scanf("%d", &n); espace = n + 4 - 1; // Calculer le nombre initial d'espaces // Démarrer une boucle pour générer les lignes for (i = 1; i <= n; i++) { // Boucle pour afficher les espaces avant les nombres for (k = espace; k >= 1; k--) { printf(" "); } //Boucle pour afficher les nombres basés sur la ligne actuelle for (j = 1; j <= i; j++) { printf("* "); // Afficher une étoile suivie d'un espace } printf("\n"); // Passez à la ligne suivante espace--; // Décrémenter le nombre d'espaces pour la ligne suivante } return 0; }
21. Ecrivez un programme C pour afficher une pyramide des étoiles, chaque ligne contenant un nombre impair d'étoiles. En utilisant la boucle 'for'.
Exemple de sortie:
Entrer le nombre de lignes: 4 * *** *****
#include <stdio.h> int main() { int i, j, n; printf("Entrer le nombre de lignes:"); scanf("%d", &n); // Démarrer une boucle pour générer les lignes for (i = 0; i < n; i++) { // Boucle pour afficher les espaces avant les étoiles for (j = 1; j <= n - i; j++) printf(" "); // Boucle pour afficher les étoiles for (j = 1; j <= 2 * i - 1; j++) printf("*"); // Passer à la ligne suivante après avoir affiché chaque ligne printf("\n"); } return 0; }
22. Ecrivez un programme C pour créer une pyramide avec un nombre qui répétera le nombre dans la même ligne. En utilisant la boucle 'for'.
Exemple de sortie:
Entrer le nombre de lignes: 4 1 2 2 3 3 3 4 4 4 4
#include <stdio.h> int main() { int i, j, espace, n, k; printf("Entrer le nombre de lignes:"); scanf("%d", &n); espace = n + 4 - 1; // Calculer le nombre initial d'espaces // Démarrer une boucle pour générer les lignes for (i = 1; i <= n; i++) { // Boucle pour afficher les espaces for (k = espace; k >= 1; k--) { printf(" "); } //Boucle pour afficher les nombres for (j = 1; j <= i; j++) { printf("%d ", i); } printf("\n"); // Passez à la ligne suivante espace--; // Décrémenter le nombre d'espaces pour la ligne suivante } return 0; }
23. Ecrivez un programme en C pour afficher le triangle de Floyd. En utilisant la boucle 'for'.
Exemple de sortie:
Entrer le nombre de lignes: 5 1 01 101 0101 10101
#include <stdio.h> int main() { int i, j, p, q, n; printf("Entrer le nombre de lignes:"); scanf("%d", &n); // Démarrer une boucle pour générer les lignes for (i = 1; i <= n; i++) { if (i % 2 == 0) // Vérifier si 'i' est pair. { p = 1; q = 0; } else // Si 'i' est impair. { p = 0; q = 1; } // Boucler sur chaque élément de la ligne for (j = 1; j <= i; j++) { if (j % 2 == 0) // Vérifier si 'j' est pair printf("%d", p); // Afficher 'p' si 'j' est pair else printf("%d", q); // Afficher 'q' si 'j' est impair } // Passer à la ligne suivante après avoir affiché la ligne printf("\n"); } return 0; }
24. Écrire un programme en C pour afficher un dessin comme un diamant. En utilisant la boucle 'for'.
Exemple de sortie:
Entrer le nombre de lignes (moitié du diamant): 5 * *** ***** ******* ********* ******* ***** *** *
#include <stdio.h> int main() { int i, j, n; printf("Entrer le nombre de lignes (moitié du diamant):"); scanf("%d", &n); // Boucle pour afficher la moitié supérieure du diamant for (i = 0; i <= n; i++) { // Boucle pour afficher les espaces avant les étoiles for (j = 1; j <= n - i; j++) printf(" "); // Boucle pour afficher les étoiles for (j = 1; j <= 2 * i - 1; j++) printf("*"); // Passez à la ligne suivante après avoir terminé la ligne printf("\n"); } // Boucle pour afficher la moitié inférieure du diamant for (i = n - 1; i >= 1; i--) { // Boucle pour afficher les espaces avant les étoiles for (j = 1; j <= n - i; j++) printf(" "); // Boucle pour afficher les étoiles for (j = 1; j <= 2 * i - 1; j++) printf("*"); // Passez à la ligne suivante après avoir terminé la ligne printf("\n"); } return 0; }
25. Écrire un programme C pour afficher le triangle de Pascal. En utilisant la boucle 'for'.
Exemple de sortie:
Entrer le nombre de lignes: 5 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
#include <stdio.h> int main() { int n, c = 1, espace, i, j; printf("Entrer le nombre de lignes:"); scanf("%d", &n); // Démarrer une boucle pour générer les lignes for (i = 0; i < n; i++) { // Boucle pour afficher les espaces for (espace = 1; espace <= n - i; espace++) printf(" "); //Boucle pour afficher les nombres for (j = 0; j <= i; j++) { // S'il s'agit de la 1er colonne ou de la 1er ligne, mettez c à 1 if (j == 0 || i == 0) c = 1; else c = c * (i - j + 1) / j; // Calculer la valeur suivante printf("% 4d", c); // Afficher la valeur } printf("\n"); // Passez à la ligne suivante } return 0; }
26. Ecrivez un programme C pour afficher un tel schéma pour n lignes en utilisant un nombre qui commence par 1 et chaque ligne aura un 1 comme premier et dernier chiffre.
Exemple de sortie:
Entrer le nombre de lignes: 3 1 121 12321
#include <stdio.h> int main() { int i, j, n; printf("Entrer le nombre de lignes:"); scanf("%d", &n); // Démarrer une boucle pour générer les lignes for(i = 0; i <= n; i++) { //Boucle pour afficher les espaces avant les nombres for(j = 1; j <= n - i; j++) printf(" "); //Boucle pour afficher les nombres dans l'ordre croissant for(j = 1; j <= i; j++) printf("%d", j); //Boucle pour afficher les nombres dans l'ordre décroissant for(j = i - 1; j >= 1; j--) printf("%d", j); //Passer à la ligne suivante après avoir affiché une ligne printf("\n"); } return 0; }
27. Ecrivez un programme C pour afficher le dessin de la pyramide à l'aide des alphabets.
Exemple de sortie:
Entrer le nombre de lettres: 4 A A B A A B C B A A B C D C B A
#include <stdio.h> int main() { int i, j, n, espace, compteur = 1; char lettre = 'A'; printf("Entrer le nombre de lettres: "); scanf("%d", &n); // Démarrer une boucle pour générer les lignes for (i = 1; i <= n; i++) { // Boucle pour afficher les espaces avant les lettres for(espace = 1; espace <= n - i; espace++) printf(" "); // Boucle pour afficher les lettres dans l'ordre croissant for (j = 0; j <= (compteur / 2); j++) { printf("%c ", lettre++); } // Décrémenter le caractère après avoir affiché la moitié lettre = lettre - 2; // Boucle pour afficher les lettres dans l'ordre décroissant for (j = 0; j < (compteur / 2); j++) { printf("%c ", lettre--); } // Incrémente le compteur pour la ligne suivante compteur = compteur + 2; // Remettre le caractère à "A" pour la ligne suivante lettre = 'A'; //Passer à la ligne suivante après avoir affiché la ligne printf("\n"); } return 0; }
28. É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 }
29. 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; }
30. 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; }
31. 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; }
32. 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; }
33. 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; }
34. É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; }
35. É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); }
36. É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; }
37. É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; }