如何使用计数循环来计算数字的倍数?

How can I use a counting loop to calculate multiples of a number?

我正在做一些作业,我的任务是用 C 语言编写一个程序,该程序使用从 1 到 10 计数的循环,并使用该循环的计数器计算最大 5 的倍数。我有计数创建的循环正确计数为 10,但我现在卡住的地方是任务的第二部分。我试图创建一个新循环,但它没有按照我希望的方式工作。

#include <stdio.h>

int main (void) {
    int counter = 1;

    // heading
    puts("Number\t 1st\t 2nd\t 3rd\t 4th\t 5th");

    // loop that counts to 10
    while (counter <= 10) {
        printf("%d\n", counter);
        counter++; // adds +1 to the counter
    }

    // stuck on this part
    // loop that attempts to take the 10 numbers from prior loop and display their multiples up to 5 times
    while (counter <=10) {
        printf("%d", counter);

        counter = counter * 1;
        counter = counter * 2;
        counter = counter * 3;
        counter = counter * 4;
        counter = counter * 5;
    }
}

这就是我想要的样子:

您不想这样做:

    printf("%d", counter);

    counter = counter * 1;
    counter = counter * 2;
    counter = counter * 3;
    counter = counter * 4;
    counter = counter * 5;

您每次迭代都将计数器乘以 1*2*3*4*5 = 120!相反,您想让计数器保持 1, 2, 3, ... 并直接打印倍数:

int counter = 1;

while (counter <= 10) {
    printf("%d\t %d\t %d\t %d\t %d\t %d\n",
           counter * 1,
           counter * 1,
           counter * 2,
           counter * 3,
           counter * 4,
           counter * 5);

    counter++;
}

有关更多信息,如果您想将一个循环放在另一个循环中,您可以这样做:

#include <stdio.h>

int main (void)
{
   printf("Number\t1st\t2nd\t3rd\t4th\t5th\n");
   for (int rows = 1; rows <= 10; rows++) {
     printf("%d", rows);
     for(int cols = 1; cols <= 5; cols++) {
         printf("\t%d", rows * cols);
     }
     printf("\n");
   }
   return 0;

} // main

但为了您的目的,选择的答案更好!