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 deFahr 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 deprincipal 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 ++?