Mon code en C est:
#include <stdio.h> main() { int fahr, celsius; int lower, upper, step; lower = 0; upper = 300; step = 20; fahr = lower; while (fahr <= upper); { celsius = 5 * (fahr - 32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + step; } }
3 Réponses :
Retirez le point-virgule après la déclaration de temps. p>
Comme cela, la boucle tandis que la boucle est une boucle infinie, car le code à l'intérieur des supports bouclés n'est pas considéré comme le corps de la boucle. La boucle tandis que la boucle a un corps vide et ne terminera jamais. p>
Le code dans les supports bouclés ne sera jamais exécuté. p>
Il convient de noter que GCC vous avertira à propos de ce problème si vous activez des avertissements (-wall pour la plupart d'entre eux, mais ce problème spécifique est pris par -wmoislading-indentat). Vous devriez toujours toujours passer -wall, surtout pendant que vous apprenez.
Votre boucle tandis que écrit ne fait pas ce que vous avez l'intention de. L'erreur est sur cette ligne: P>
tandis que (Fahr <= supérieure); { code> p> blockQuote>
Le point-virgule ici termine prématurément la déclaration de temps. Cela crée une boucle infinie, car votre programme évalue maintenant continuellement
fahr <= supérieur code> sans modifier la valeur de
Fahr code>. P>
Supprimer que le point-virgule et votre programme s'exécuteront comme prévu. P>
Changer à p> à cause du point-virgule après la boucle de la boucle tandis que la boucle { } code> partie. Donc, la valeur de
fahr code> &
supérieure code> ne change jamais et la boucle tandis que la boucle fonctionne pour toujours. Retirez le point-virgule, votre code fonctionnera bien. p> p>
Semicolon errant après la déclaration de temps
Pas le problème, mais vous devriez utiliser
int Main (VOID) code> comme signature de
principal code>
Quel est cet ancien principal que vous utilisez? Mettez à niveau votre compilateur et utilisez INT principal (void)
Allumez les avertissements du compilateur et vous verrez ce qui ne va pas.
@ Machine_1 Quel est le point d'utiliser
void code> dans la liste des arguments? Ce n'est pas obligatoire.
toujours lire des avertissements du compilateur. Vous obtiendrez quelque chose comme ": 13: 26: AVERTISSEMENT: tandis que la boucle a du corps vide [- corps-éponge]". Et voir Qu'est-ce que le rendement principal de C et C ++?