最初のコードは1の82として出てきます!階乗...理由は何ですか?doループが完全に正常に機能することを考えると、それは私にはまったく意味がありません。プログラムを実行すると、階乗に対するすべての回答を示す表が表示されます。doループは私がしなければならないことは大丈夫ですが、私はそれを使うことができません。
forループが正しく機能しない理由はありますか?
#include <stdio.h> /* Necessary header */
#define LAST_NUMBER 25 /* Macro preset to avoid magic numbers */
int main(void) /* Start executive method */
{
int Nbr;
signed long total = Nbr;
printf("Nbr Nbr!"); /* Table Headers */
printf("\n----------------------");
for (Nbr = 1; Nbr<=LAST_NUMBER;) /* Loop statement begins */
{
total *= Nbr;
printf("\n%2d %15ld", Nbr, total);
Nbr++;
/* Prints both columns for table */
} /* Loop ends when predefined number is reached */
return 0;
} /* End main method */
/* The following code works fine */
#include <stdio.h> /* Necessary header */
#define LAST_NUMBER 25 /* Macro preset to avoid magic numbers */
int main(void) /* Start executive method */
{
int Nbr = 1;
signed long total = Nbr;
printf("Nbr Nbr!"); /* Table Headers */
printf("\n----------------------");
do /* Loop statement begins */
{
total *= Nbr;
printf("\n%2d %15ld", Nbr, total); /* Prints both columns for table */
Nbr++;
}while (Nbr<=LAST_NUMBER); /* Loop ends when predefined number is reached */
return 0;
} /* End main method */