Intervalle, entiers et divisibilité en langage c
Sunshine9
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai reçu une consigne et je dois faire un programme qui affiche tous les entiers de
l'intervalle [145,256] qui ne sont divisibles ni par 2, ni par 3, ni par 5 (un par ligne) et il doit indiquer le nombre d'entiers affichés.
Voici le programme que j'ai fais, mais il n'affiche que les chiffres de 145 à 256, je n'ai pas encore essayer d'indiquer le nombre d'entiers affichés :
#include <stdio.h>
int main(){
int entier=145, divisible2, divisible3, divisible5;
divisible2 = entier/2;
divisible3 = entier/3;
divisible5 = entier/5;
while ((entier >= 145) && (entier <= 256))
{
if ((entier != divisible2) && (entier != divisible3) && (entier != divisible5))
{
printf(" %d \n", entier);
}
entier = entier + 1;
}
return 0;}
J'ai reçu une consigne et je dois faire un programme qui affiche tous les entiers de
l'intervalle [145,256] qui ne sont divisibles ni par 2, ni par 3, ni par 5 (un par ligne) et il doit indiquer le nombre d'entiers affichés.
Voici le programme que j'ai fais, mais il n'affiche que les chiffres de 145 à 256, je n'ai pas encore essayer d'indiquer le nombre d'entiers affichés :
#include <stdio.h>
int main(){
int entier=145, divisible2, divisible3, divisible5;
divisible2 = entier/2;
divisible3 = entier/3;
divisible5 = entier/5;
while ((entier >= 145) && (entier <= 256))
{
if ((entier != divisible2) && (entier != divisible3) && (entier != divisible5))
{
printf(" %d \n", entier);
}
entier = entier + 1;
}
return 0;}
A voir également:
- Intervalle en langage c
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
1 réponse
L'algorithme est faux...
divisible2 = entier/2;
divisible3 = entier/3;
divisible5 = entier/5;
Cela va calculer divisible2, divisible3 et divisible5 une fois puisqu'ils sont en dehors de la boucle while. Il faut réactualiser le calcul pour chaque nouvel variable entier. Mais tu n'en as pas besoin de ces variables.
if (entier != divisible2)
Cela compare entier entier avec divisible2. Rien à voir avec ce que tu souhaites faire (si entier est divisible par 2). Un nombre est x si le reste de la division est nulle. Donc : if(entier%2 != 0) signfie si entier n'est pas divisible par 2. A toi de jouer avec le reste.
Pour le nombre de variables affichés, un simple compteur fera l'affaire.
Cdlt,
divisible2 = entier/2;
divisible3 = entier/3;
divisible5 = entier/5;
Cela va calculer divisible2, divisible3 et divisible5 une fois puisqu'ils sont en dehors de la boucle while. Il faut réactualiser le calcul pour chaque nouvel variable entier. Mais tu n'en as pas besoin de ces variables.
if (entier != divisible2)
Cela compare entier entier avec divisible2. Rien à voir avec ce que tu souhaites faire (si entier est divisible par 2). Un nombre est x si le reste de la division est nulle. Donc : if(entier%2 != 0) signfie si entier n'est pas divisible par 2. A toi de jouer avec le reste.
Pour le nombre de variables affichés, un simple compteur fera l'affaire.
Cdlt,