Visual c++:"<"ou">" non reconnu dans un "for"
ouate_z'oeuf_phoque
-
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Bonjouuuur!
Bon alors voilà le topo, j'ai téléchargé visual c++ 2008 express(le meme qu'a la fac!) et me suis enregistré, bref tout va bien, ou presque.
je débute alors je teste des petites fonctions pas dures, mais visiblement ya un probleme d'operateurs de comparaison avec la fonction 'for'.
Voici le petit programme que j'essaie de faire tourner, c'est que dalle hein mais bon ca coince déja haha:
#include<stdio.h>
int main()
{
printf("coucou\n"); //ben quoi un peu de politesse
int a,b;
printf("saisissez un premier nombre\n");
scanf_s("%d",&a);
printf("saisissez un deuxieme nombre\n");
scanf_s("%d",&b);
for(a<b;a==b;a++) <=c'est cette ligne la qui débloque
printf("%d\n",a);
}
donc logiquement, si j'entre 10, puis 20, ce programme est censé m'afficher les chiffres de 10 à 20 on est d'accord?
résultat: il ne fait rien. je saisi a, puis b, puis il revient a la ligne (\n) et "appuyez sur une touche pour continuer".
je lis 0 erreurs, mais un avertissement C4552 sur lequel je n'ai pas trouvé de réponse satisfaisante en fouillant le web, je cite:
" warning C4552: '<' : opérateur sans effet ; opérateur avec effet secondaire attendu"
en clair il ne reconnait pas l'operateur < (ou meme >) dans un "for". j'ai testé un programme aussi simple en "if" et pas de souci.
Donc ma question est: a la fac on débute avec ce genre de trucs, pour autant que je sache ma syntaxe est bonne, mais voila, ca marche la bas, et chez moi avec le meme logiciel et la meme syntaxe ca foire. Pourquoi? Mais surtout: Comment faire?
D'avance merci pour vos réponses!
A voir également:
- Visual c++:"<"ou">" non reconnu dans un "for"
- Visual c++ 2019 - Guide
- Visual petanque - Télécharger - Sport
- Visual paradigm - Télécharger - Gestion de données
- Visual watermark - Télécharger - Photo & Graphisme
- Visual basic - Télécharger - Langages
1 réponse
salut,
je crois que tu n'as pas bien compris la syntaxe de la boucle for :
instruction1; est exécuté au démarrage de la boucle, une seule fois.
J'ai bien dit "exécutée".
ça reviens (presque) au même que d'écrire :
or écrire :
est une instruction qui ne fait ... rien.
(en gros elle fait :
selon les nombres, mais une telle instruction ne fait rien du tout.
ensuite, à chaque pas de la boucle, avant d'exécuter le bloc "expression" est évaluée.
Si "expression" renvoie true, le bloc est exécuté.
Si expression renvoie false, la boucle for est fini et l'exécution reprend après la fin du bloc for.
Enfin, instruction2; est exécuté à chaque fin de bloc bouclé.
En gros, on peut réécrire une boucle for comme ceci :
je crois que tu n'as pas bien compris la syntaxe de la boucle for :
for (instruction1; expression; instruction2) { //bloc }
instruction1; est exécuté au démarrage de la boucle, une seule fois.
J'ai bien dit "exécutée".
ça reviens (presque) au même que d'écrire :
instruction1; for( ; expression; instruction2) { //bloc }
or écrire :
a<b;
est une instruction qui ne fait ... rien.
(en gros elle fait :
true;ou
false;
selon les nombres, mais une telle instruction ne fait rien du tout.
ensuite, à chaque pas de la boucle, avant d'exécuter le bloc "expression" est évaluée.
Si "expression" renvoie true, le bloc est exécuté.
Si expression renvoie false, la boucle for est fini et l'exécution reprend après la fin du bloc for.
Enfin, instruction2; est exécuté à chaque fin de bloc bouclé.
En gros, on peut réécrire une boucle for comme ceci :
{ instruction1; while(expression) { //bloc instruction2; } }
Pacorabanix
Messages postés
3248
Date d'inscription
Statut
Membre
Dernière intervention
663
d'ailleurs, je ne comprends pas comment ton code a pu fonctionner comme tu dis sur un autre compilateur.