0

我正在尝试使用各种类型的 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循环之后停止...... :(

4

2 回答 2

3

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

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

int main1(void);

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

int main1(void) { ... }

顺便说一句,main1对于一个函数来说,这并不是一个很好的名字,因为它类似于main. 这可能会使维护您的代码的人感到困惑。

于 2014-09-05T22:04:02.737 回答
-2

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

于 2014-09-05T22:06:45.117 回答