【问题标题】:How to run multiple for loops in C programming?如何在 C 编程中运行多个 for 循环?
【发布时间】:2014-09-05 21:58:29
【问题描述】:

我正在尝试使用各种类型的 for 循环来查找从 1 到 10 的数字的立方。我想知道为什么在我的 for 循环评估后,程序停止并且不继续评估 while 循环?有人可以帮忙吗?顺便说一下,for 循环和 while 循环应该做同样的事情。谢谢。

#include <stdio.h>
#include <stdlib.h>

/*
 * 
 */
int main(void) 
{
    int num;
    for ( num=1; num<11; num++){
        printf("The cube of %d is %d\n", num, num*num*num);
    }
    getchar();
    return 0;
}

#include <stdio.h>
int main1(void)
{
    int num1;
    scanf("%d", &num1);
    while (num1<11) {
        printf("The cube of %d is %d\n", num1, num1*num1*num1);
        num1++;
        }
    getchar();
    return 0;
}

PS 我的第一个编程语言是 Python,所以我很困惑为什么 C 在第一个 for 循环之后停止... :(

【问题讨论】:

  • 当特殊的main() 函数返回时,您的程序将终止。尝试在辅助函数中执行每种立方体。然后让main 给他们两个打电话,一个接一个。
  • main() 是程序的入口点。 main1() 是一个永远不会被调用的函数。如果您从 python 的角度考虑它 - main()main1() 将等于 def main()def main1() - 您将如何在 python 中调用这些函数?
  • 另外,如果两个主电源在同一个文件中,则不需要包含 stdio 2x。在 for 循环之后,您可以尝试 int resultMain = main1();
  • 因为你输入了while (num1&lt;11),所以无论如何它都不适用于超过 10 个输入。如果num1 扫描超过 10 个,您的循环甚至不会进入。

标签: c for-loop multiplication cubic


【解决方案1】:

main()main1() 是两个不同的函数。你的系统调用main(),你的程序的入口点。当main() 结束时,即是您的程序终止的时间。 main1 完全没有被触动。

连接两个函数(将main1 复制粘贴到main)或从main() 调用main1()。但是您首先需要一个前向声明:

int main1(void);

int main(void)
{
    // ...
    main1();
}

int main1(void) { ... }

顺便说一句,main1 不是一个很好的函数名称,因为它类似于 main。这会让维护您的代码的人感到困惑。

【讨论】:

  • 这不仅与main 相似,而且对它的作用也没有任何描述。我个人会选择cubeByForcubeByWhile之类的东西,然后分别从main调用。
【解决方案2】:

在声明 num 和 num1 之后,您将 for 循环中的 num 设置为 1,但在 while 循环中没有设置 num1。加上提到的主要功能问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多