Узнать вывод c-программы - PullRequest
       1

Узнать вывод c-программы

1 голос
/ 03 ноября 2010
#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 ]

15 голосов
/ 03 ноября 2010

Точка с запятой в конце вашей строки for.

6 голосов
/ 03 ноября 2010

Из-за точки с запятой в строке for оператор увеличивает i до тех пор, пока он не станет равным <= 3, что равно 4. Затем выполняется код ниже. </p>

0 голосов
/ 03 ноября 2010

Поскольку вы используете 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 */
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...