如何使用计数循环来计算数字的倍数?
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
但为了您的目的,选择的答案更好!
我正在做一些作业,我的任务是用 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
但为了您的目的,选择的答案更好!