[langage C] comment remplacer[for] par [if]
Résolu
Bonjour
je debute en programmation et j'ai une question qui pourrait semblé bête a tout les programmeurs, c'est un exercice que j'ai trouvé dans 1 livre d'apprentissage sur le langage C. je voulais savoir comment remplacer l'instruction for par l' instruction if dans ce code merci.
#include <stdio.h>
main()
{
int num;
printf("entrez un chiffre divisible\npar 2 et 3 :\n");
for ( num = 1;(num%2 != 0) || (num%3 != 0);)
num = getchar() - 48;
printf("Resultat : %d",num);
return 0;
}
je debute en programmation et j'ai une question qui pourrait semblé bête a tout les programmeurs, c'est un exercice que j'ai trouvé dans 1 livre d'apprentissage sur le langage C. je voulais savoir comment remplacer l'instruction for par l' instruction if dans ce code merci.
#include <stdio.h>
main()
{
int num;
printf("entrez un chiffre divisible\npar 2 et 3 :\n");
for ( num = 1;(num%2 != 0) || (num%3 != 0);)
num = getchar() - 48;
printf("Resultat : %d",num);
return 0;
}
A voir également:
- If 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
8 réponses
Salut,
tu peux faire ca par exemple
tu peux faire ca par exemple
#include <stdio.h> main() { int num; printf("entrez un chiffre divisible\npar 2 et 3 :\n"); num=1; if ((num%2 != 0) || (num%3 != 0)) num = getchar() - 48; printf("Resultat : %d",num); return 0; }
salut.
Le problème entre un for et un if, c'est que le for boucle, mais pas le if...
La solution de jamel est bonne, il suffit en quelque sorte de boucler dessus.
Pour reprendre sa solution, je ferai :
Le problème entre un for et un if, c'est que le for boucle, mais pas le if...
La solution de jamel est bonne, il suffit en quelque sorte de boucler dessus.
Pour reprendre sa solution, je ferai :
omt: if((num%2!=0)|(num%3!=0)) num=getchar()-48; else goto omt;Bonne chance.
merci pour les solutions mais le but du programme est de trouver les chiffres divisibles par 2 et 3 donc si un chiffre ne l'est pas la boucle continue.Normalement dans l' exercice seule les chiffres 0 et 6 sont divisibles par 2 et 3.
Executer ce code et vous comprendrer, je dois remplacer l' instruction [for] par l' instruction [if].
#include <stdio.h>
main()
{
int num;
printf("entrez un chiffre divisible\npar 2 et 3 :\n");
for ( num = 1;(num%2 != 0) || (num%3 != 0);)
num = getchar() - 48;
printf("Resultat : %d",num);
return 0;
}
merci pour l'aide.
Executer ce code et vous comprendrer, je dois remplacer l' instruction [for] par l' instruction [if].
#include <stdio.h>
main()
{
int num;
printf("entrez un chiffre divisible\npar 2 et 3 :\n");
for ( num = 1;(num%2 != 0) || (num%3 != 0);)
num = getchar() - 48;
printf("Resultat : %d",num);
return 0;
}
merci pour l'aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Certains choses sont à revoir
- pour lire une valeur numérique on utilise plutôt un scanf, car la methode du getchar suppose que le nombre ne comporte qu'un chiffre et le "-48" qu'on est en ASCII. On fait donc plutôt
- ensuite pour les divisibles par 2 et 3 je suppose que tu t'arrêtes à 10 car tous les multiples de 6 vérifient la condition. Auquel cas veux-tu que le programme
1)les affiche tous directement
2) ou que ce soit uniquement un test sur UN nombre saisi par l'utilisateur ?
1)
2)
Si tu es sous windows tu peux rajouter un getchar(); devant le return 0 (pour pouvoir lancer le programme depuis l'explorateur et avoir le temps de lire le résultat).
Bonne chance
- pour lire une valeur numérique on utilise plutôt un scanf, car la methode du getchar suppose que le nombre ne comporte qu'un chiffre et le "-48" qu'on est en ASCII. On fait donc plutôt
int x; scanf("%d",&num);
- ensuite pour les divisibles par 2 et 3 je suppose que tu t'arrêtes à 10 car tous les multiples de 6 vérifient la condition. Auquel cas veux-tu que le programme
1)les affiche tous directement
2) ou que ce soit uniquement un test sur UN nombre saisi par l'utilisateur ?
1)
#include <stdio.h> int main(){ int i; for(i=0;i<10;++i){ if( (i%2 == 0) && (i%3) == 0){ printf("%d est divisible par 2 et par 3\n",i); } } return 0; }
2)
#include <stdio.h> int main(){ int i,num; printf("num = ?"); scanf("%d",&num); if( (num%2 == 0) && (num%3) == 0){ printf("%d est divisible par 2 et par 3\n",num); } return 0; }
Si tu es sous windows tu peux rajouter un getchar(); devant le return 0 (pour pouvoir lancer le programme depuis l'explorateur et avoir le temps de lire le résultat).
Bonne chance
Je pense que l'astuce c'est de créer une fonction récursive prenant un entier en paramètre:
- Si la valeur est divisible par 2 et 3, elle l'affiche
- Sinon, on l'incrémente et on la passe en paramètre à cette même fonction...
- Si la valeur est divisible par 2 et 3, elle l'affiche
- Sinon, on l'incrémente et on la passe en paramètre à cette même fonction...
merci pour les petites leçons de programmation j'ai utilisé le code de mamiemendo
je comprend mieux la difference entre les 2 instructions [for] et [if] merci a tous et a bientot.
#include <stdio.h> int main(){ int i; for(i=0;i<10;++i){ if( (i%2 == 0) && (i%3) == 0){ printf("%d est divisible par 2 et par 3\n",i); } } return 0; }
je comprend mieux la difference entre les 2 instructions [for] et [if] merci a tous et a bientot.
Salut,
j'ai utilisé le code de mamiemendo
tu peux lui offrir une fleur
Voilà :
j'ai utilisé le code de mamiemendo
tu peux lui offrir une fleur
Voilà :
.=====__ /==Z' .===_ ~~=,_===\ _/ | | YZ, `\, ~\ | | | _/=j'\ !, d __====_| | b/ V`; /' .M , `5\==/~~ W, t d+, .D4| / /'|/~~~\=__ .- `\ t~\ | |t`~~T/'|Z :/ | ~~\=/V \ | \4, | ~/~' :Z -! | | \, /\__| \\.! :XG \ / ._, ./' `L | ~; V; _//' | \ .f~' `~; .b_ ./ \\__JL `; Y7~ | / / d //' \, .! `D\, `\, | .! .t/ .(_/=~ \ / `;`~~~=+=qLb, jK_L==f' j'' `; ./ .(r, `~\5' ~\\,._r/ | ~=m! ./D' `\, \, !G~ t ~==___===/'/ .!`\__ /! __=~\\~=_ TG= | .| ~\=\=r@/~5 \ !, ~=_, __//' |./~V || `| \, t ~~~~\==~~ t| | | | | !\, \=_, ! t .! !, \ `\/~~~ | / !\/\ `; ./ `~- t .! N, ./' `\/'lami20j