Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программа на си смотрите поясненние. Функция return

sgf sfg Ученик (84), на голосовании 14 лет назад
#include <stdio.h>

int power(int m, int n);

/* тест функции power */
main()
{
int i;
for (i = 0: i < 10, ++i)
printf(“%d %d %d\n”, i, power(2,i), power(-3,i));
return 0;
}

/* возводит base в n-ю степень, n >= 0 */
int power(int base, int n)
{
int i, p;

p = 1;
for (i = 1; i <= n; ++i)
p = p * base;
return p;
}

Я изучаю язык си по книге Кернигана и Ритчи
И у меня возникла множество вопросов. Я знаю, что функция return создана для передачи значения в другую функцию и выхода из самой функции. При компиляции я увидел значения только 1-ого массива:
#include <stdio.h>

int power(int m, int n);

/* тест функции power */
main()
{
int i;
for (i = 0: i < 10, ++i)
printf(“%d %d %d\n”, i, power(2,i), power(-3,i));
return 0;
}

а второго массива нет
/* возводит base в n-ю степень, n >= 0 */
int power(int base, int n)
{
int i, p;

p = 1;
for (i = 1; i <= n; ++i)
p = p * base;
return p;
}

Но даже если я впишу printf("%d, p") при компиляции выходят не понятные значения. Также я не понимаю как происходит передача значения после return 0 и почему после return ставится 0, а во втором массиве p?
Голосование за лучший ответ
Argentum Гуру (4372) 14 лет назад
начнём с того, что компиляция - это только перевод текста программы в объектный файл и не более того, даже exe-шник не собирается. А вот сборка exe-шника происходит при линковке, ато чем Вы занимаетесь - называется отладка.
что касается литературы - книжка хорошая, по крайней мере для понимания основ программирования на С.
теперь о программе: вот Вы говорите массив, а вот я, честно, массива тут не вижу, Вы просто в цикле выводите значения одной и той же переменной, соответственно, не совсем понятно, какой "массив" Вы имеете в виду, уточните, пожалуйста
что касается функции return - эта функция возвращает значение из вызванной функции в вызвавшую, и собственно возвращает управление главной функции - все ведь логично, в функции возведения в степень возвращается число р - результат вычисления, и он печатается printf 'ом, а если говорить о возвращаемом 0 - это необязательно, можно сделать функцию main типа void - тогда она не должна будет ничего возвращать, другое дело, что компилятор ругнуться может, что неожиданное завершение текста, поэтому лучше, всё-таки оставить, почему 0 - просто так принято
Похожие вопросы