创建一个循环,将输出所有大于零且小于 60(不包括 60)的 5 的倍数

Create a loop that will output all the multiples of 5 that are greater than zero and less than 60 (do not include 60)

这是我周一要交的作业,老师不会给我回邮件。我的代码有效,但结果一直显示 0,我不知道为什么,每次我尝试修复它时,整个过程都崩溃了。指令是: 创建一个循环,输出所有大于零的 5 的倍数和 小于60(不含60)。这是有效的代码。

#include <stdio.h>
int main(void){
 int multiples, count;
 multiples = 5;
 count = 0;

while (count < 60){
    printf("%i \n", count);
    count = multiples + count;
    if (count)
}
system("pause");

我真的不明白我做错了什么。我知道我不能只做 (count < 60 && count > 0) 因为我已经使 count = 0 但我需要摆脱结果 0 最好不要重写我的整个代码。

0 正在打印,因为在 while 循环中第一次到达 printf("%i \n", count); 时,计数仍然为 0。为了解决这个问题,您只需要切换行(有 count = multiples + count;printf("%i \n", count); 之前)。

此外,为了避免打印 60,您需要添加一个 if 条件。

while (count < 60){
    count = multiples + count;
    if(count!=60) {
        printf("%i \n", count);
    }
}

或者,您也可以从 5:

开始 count
#include <stdio.h>
int main(void){
int multiples, count;
multiples = 5;
count = 5;

while (count < 60){
    printf("%i \n", count);
    count = multiples + count;
}
system("pause");

只是不要从0开始,最好正好相乘

#include <stdio.h>
int main(void){
int multiplier, count, value;
multiplier = 5;
count = 1;

do {
    value = count * multiplier;
    count++;
    printf("%i \n", value);
} while (value < 60)
system("pause");

我建议使用 for 循环在一行代码中计算 60 以下的 5 的倍数:

int count=0;
for (int i=5; i<60; i+=5) {cout<<i<<'\n'; count++;}
cout<<"Total multiples: "<<count;

另一种实现它的方法是使用 do-while 循环,以便在 while 子句评估计数值之前更改计数值。