int i; int S = 0;
for (i=1; i < 6; i+=2) { S = S + i; }
printf("%d\n", S);Analyse étape par étape :
Réponse : S = 9
Les deux programmes ne sont pas équivalents.
Programme 1 (for) :
#include<stdio.h>
int main() {
int count = 1;
for(count = 1; count <= 5; count++) {
count = 1;
printf("%d\n", count);
}
return 0;
}Programme 2 (while) :
#include<stdio.h>
int main() {
int count = 1;
while(count <= 5) {
printf("%d\n", count);
count++;
}
return 0;
}Différence :
count est réinitialisé à 1 dans le corps de la boucle#include <stdio.h>
int main() {
int N;
printf("Entrez le nombre de lignes : ");
scanf("%d", &N);
for (int i = 1; i <= N; i++) {
// Afficher les espaces
for (int j = 1; j <= N - i; j++) {
printf(" ");
}
// Afficher les étoiles
for (int k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("\n");
}
return 0;
}Exemple pour N = 5 :
*
***
*****
*******
*********#include <stdio.h>
int main() {
printf("Avec boucle while :\n");
int i = 1;
while (i <= 50) {
printf("%d ", i);
i++;
}
printf("\n");
return 0;
}#include <stdio.h>
int main() {
printf("Avec boucle do-while :\n");
int i = 50;
do {
printf("%d ", i);
i--;
} while (i >= 1);
printf("\n");
return 0;
}#include <stdio.h>
int main() {
int limite;
printf("Entrez la limite : ");
scanf("%d", &limite);
printf("Avec boucle for :\n");
for (int i = 2; i <= limite; i += 2) {
printf("%d ", i);
}
printf("\n");
return 0;
}#include <stdio.h>
int main() {
int somme = 0, nombre;
printf("Entrez 10 entiers :\n");
for (int i = 1; i <= 10; i++) {
printf("Entier %d : ", i);
scanf("%d", &nombre);
somme += nombre;
}
printf("La somme est : %d\n", somme);
return 0;
}#include <stdio.h>
int main() {
int somme = 0, nombre;
int count = 0;
printf("Entrez 10 entiers strictement positifs :\n");
while (count < 10) {
printf("Entier %d : ", count + 1);
scanf("%d", &nombre);
if (nombre > 0) {
somme += nombre;
count++;
} else {
printf("Erreur : entrez un nombre strictement positif !\n");
}
}
double moyenne = (double)somme / 10;
printf("La moyenne est : %.2f\n", moyenne);
return 0;
}#include <stdio.h>
int main() {
int somme = 0, nombre;
int count = 0;
printf("Entrez 10 entiers :\n");
for (int i = 1; i <= 10; i++) {
printf("Entier %d : ", i);
scanf("%d", &nombre);
if (nombre > 0) {
somme += nombre;
count++;
}
}
if (count > 0) {
double moyenne = (double)somme / count;
printf("La moyenne des entiers positifs est : %.2f\n", moyenne);
printf("Nombre d'entiers positifs : %d\n", count);
} else {
printf("Aucun entier positif saisi\n");
}
return 0;
}#include <stdio.h>
int main() {
int n, U;
printf("Entrez le nombre de termes à afficher : ");
scanf("%d", &n);
U = 2; // U0 = 2
printf("Les %d premiers termes de la suite :\n", n);
for (int i = 0; i < n; i++) {
printf("U%d = %d\n", i, U);
U = U + 7; // Un+1 = Un + 7
}
return 0;
}Exemple pour n = 5 :
U0 = 2
U1 = 9
U2 = 16
U3 = 23
U4 = 30#include <stdio.h>
int main() {
double x;
int n;
double resultat = 1.0;
printf("Entrez la base x : ");
scanf("%lf", &x);
printf("Entrez l'exposant n : ");
scanf("%d", &n);
// Calcul avec boucle for
for (int i = 0; i < n; i++) {
resultat *= x;
}
printf("%.2f^%d = %.2f\n", x, n, resultat);
return 0;
}#include <stdio.h>
int main() {
double x;
int n;
double resultat = 1.0;
int i = 0;
printf("Entrez la base x : ");
scanf("%lf", &x);
printf("Entrez l'exposant n : ");
scanf("%d", &n);
// Calcul avec boucle while
while (i < n) {
resultat *= x;
i++;
}
printf("%.2f^%d = %.2f\n", x, n, resultat);
return 0;
}Note : Ne pas utiliser la fonction pow de math.h comme demandé.
#include <stdio.h>
int main() {
int n;
int est_premier = 1; // 1 = premier, 0 = pas premier
printf("Entrez un nombre : ");
scanf("%d", &n);
if (n <= 1) {
est_premier = 0;
} else {
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
est_premier = 0;
break;
}
}
}
if (est_premier) {
printf("%d est un nombre premier\n", n);
} else {
printf("%d n'est pas un nombre premier\n", n);
}
return 0;
}Rappel : Un nombre est premier s'il n'a aucun diviseur autre que 1 et lui-même.
#include <stdio.h>
int main() {
int n;
printf("Entrez un nombre : ");
scanf("%d", &n);
printf("Les nombres parfaits inférieurs ou égaux à %d sont :\n", n);
for (int i = 1; i <= n; i++) {
int somme_diviseurs = 0;
// Calculer la somme des diviseurs stricts
for (int j = 1; j < i; j++) {
if (i % j == 0) {
somme_diviseurs += j;
}
}
// Vérifier si c'est un nombre parfait
if (somme_diviseurs == i) {
printf("%d est parfait car %d = ", i, i);
// Afficher les diviseurs
int premier = 1;
for (int j = 1; j < i; j++) {
if (i % j == 0) {
if (!premier) printf(" + ");
printf("%d", j);
premier = 0;
}
}
printf("\n");
}
}
return 0;
}Exemple : 28 est parfait car 28 = 1 + 2 + 4 + 7 + 14
#include <stdio.h>
int main() {
char couleur;
printf("Entrez une couleur (R/V/B/N) : ");
scanf(" %c", &couleur);
switch (couleur) {
case 'R':
case 'r':
printf("ROUGE si la couleur vaut R ou r\n");
break;
case 'V':
case 'v':
printf("VERT si la couleur vaut V ou v\n");
break;
case 'B':
case 'b':
printf("BLEU si la couleur vaut B ou b\n");
break;
case 'N':
case 'n':
printf("NOIR pour tout autre caractère\n");
break;
default:
printf("NOIR pour tout autre caractère\n");
break;
}
return 0;
}#include <stdio.h>
int main() {
int nombre;
int max_chiffres = 0;
printf("Entrez des entiers positifs ou nuls (-1 pour arrêter) :\n");
do {
printf("Entrez un nombre : ");
scanf("%d", &nombre);
if (nombre >= 0) {
// Calculer le nombre de chiffres
int nb_chiffres = 0;
int temp = nombre;
if (temp == 0) {
nb_chiffres = 1;
} else {
while (temp > 0) {
temp /= 10;
nb_chiffres++;
}
}
// Afficher le nombre et ses chiffres
printf("Nombre saisi : %d\n", nombre);
printf("Nombre de chiffres : %d\n", nb_chiffres);
// Mettre à jour le maximum
if (nb_chiffres > max_chiffres) {
max_chiffres = nb_chiffres;
}
}
} while (nombre != -1);
printf("Le maximum de chiffres saisis est : %d\n", max_chiffres);
return 0;
}#include <stdio.h>
int main() {
int nombre;
printf("Entrez des nombres positifs (0 pour arrêter) :\n");
while (1) {
printf("Entrez un nombre : ");
scanf("%d", &nombre);
if (nombre == 0) {
break;
}
if (nombre > 0) {
int carre = nombre * nombre;
printf("Le carré de %d est %d\n", nombre, carre);
} else {
printf("Nombre négatif, refusé\n");
}
}
printf("Programme terminé\n");
return 0;
}#include <stdio.h>
// Fonction pour calculer la somme des diviseurs stricts
int somme_diviseurs(int n) {
int somme = 0;
for (int i = 1; i < n; i++) {
if (n % i == 0) {
somme += i;
}
}
return somme;
}
int main() {
int a, b;
printf("Entrez deux entiers a et b : ");
scanf("%d %d", &a, &b);
int somme_a = somme_diviseurs(a);
int somme_b = somme_diviseurs(b);
printf("Somme des diviseurs de %d : %d\n", a, somme_a);
printf("Somme des diviseurs de %d : %d\n", b, somme_b);
if (somme_a == b && somme_b == a) {
printf("Les nombres %d et %d sont amis\n", a, b);
} else {
printf("Les nombres %d et %d ne sont pas amis\n", a, b);
}
return 0;
}Rappel : Deux nombres sont amis si la somme des diviseurs stricts de chacun est égale à l'autre nombre.
Exemple : 220 et 284 sont amis car :
Notes importantes :