找出c-program的输出

时间:2010-11-03 17:21:40

标签: c

#include<stdio.h>
void compute(int);
int cube(int);
int main( )
{
        compute(3);
}
void compute(int in)
{
        int res=0,i;
        for(i=1;i<=in;i++);
        {
                res=cube(i);
                printf("%d %d",res,i);
        }
}
int cube(int n)
{
        return (n*n*n);
}


输出:64 4

它是如何发生的?

3 个答案:

答案 0 :(得分:15)

for行末尾的分号。

答案 1 :(得分:6)

由于for行上有分号,语句会递增i,直到它不是&lt; = 3,即4.然后下面的代码运行。

答案 2 :(得分:0)

由于您使用的是C99,您可能需要养成在for语句本身内声明控制for循环的变量的习惯。

    for (int i=1; i<=in; i++);
    {
        /* i is not in scope here */
    }

而且,既然我已经写过了,那么编写循环的惯用方法是从0开始并使用<进行测试

    for (int i=0; i<in; i++);
    {
        /* i is not in scope here */
    }