【问题标题】:Create a loop that will output all the multiples of 5 that are greater than zero and less than 60 (do not include 60)创建一个循环,将输出大于零且小于 60(不包括 60)的所有 5 的倍数
【发布时间】:2026-01-31 07:00:01
【问题描述】:

这是我星期一要交的作业,老师不会给我发电子邮件。我的代码有效,但结果一直显示为 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 0),因为我已经使 count = 0,但我需要最好在不重写整个代码的情况下摆脱结果 0。

【问题讨论】:

  • 为什么不打印0?在这种情况下,避免使用它并向自己解释为什么您的代码是正确的会很有帮助。
  • 这必须是while 循环吗?绝对可以使用while 完成,但for 可能是更自然的循环选择。
  • @GBlodgett 如果代码是 count = multiples + count 那么它运行的第一件事不是 count = 5 + 0 等于 5 那么为什么它会首先是 0?
  • 它运行的第一件事是printf。这发生在count = multiples + count 之前,而计数仍为 0。
  • @erichamion 我怎么会错过呢?感谢您指出它按照我现在需要的方式运行。

标签: c++ loops dev-c++


【解决方案1】:

0 正在打印,因为在 while 循环中第一次到达 printf("%i \n", count);,计数仍为 0。为了解决此问题,您只需切换行(在 printf("%i \n", count); 之前有 count = multiples + 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");

【讨论】:

  • 我认为这里需要更改 while 条件。这将在最后打印 60。
  • @erichamion 你说得对,我指的是打印0的问题
  • @EyalGolan 我可以在 5 点开始count,但我已经为这个任务工作了好几个小时,我会尽可能少地改变,希望它不会搞砸其余的我的代码,我可以休息一下
  • @AnnieL 如果您正在使用一个体面的源代码控制系统(如 git),您应该,您可以随时提交您的更改并休息一下,然后再进行更多更改,如果它们破坏了内容,您只需返回之前的提交即可。经常提交..请不要说您没有使用源代码/版本控制..
【解决方案2】:

不要从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");

【讨论】:

    【解决方案3】:

    我建议使用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 子句评估计数值之前更改计数值。

    【讨论】:

      最近更新 更多