#include
",p);
}
void CntTo2(int p) {
CntTo1(p-1);
printf("%d
",p);
}
void CntTo1(int p) {
printf("%d
",p);
}
После компиляции, показывается ответ как -
1
2
3
Получается, чтобы вывести 1 в функции CntTo3, нужно выполнить функцию CntTo2, которая будет равняться 2, ну и CntTo1 уже выводит без вычислений 3. Я правильно понял? Если да, то почему в main() определяется CntTo3(3) и зачем переменная n?
Ответ
int main() {
int n;
CntTo3(3);
return 0;
}
void CntTo3(int p) {
CntTo2(p-1);
printf("%d
",p);
}
void CntTo2(int p) {
CntTo1(p-1);
printf("%d
",p);
}
void CntTo1(int p) {
printf("%d
",p);
}
Давайте просто подставлять код вместо вызова:
int main() {
int n;
CntTo2(2);
printf("%d
",3);
return 0;
}
void CntTo2(int p) {
CntTo1(p-1);
printf("%d
",p);
}
void CntTo1(int p) {
printf("%d
",p);
}
Следующая подстановка:
int main() {
int n;
CntTo1(1);
printf("%d
",2);
printf("%d
",3);
return 0;
}
void CntTo1(int p) {
printf("%d
",p);
}
И последняя:
int main() {
int n;
printf("%d
",1);
printf("%d
",2);
printf("%d
",3);
return 0;
}
Так понятнее?
Переменная n нигде не работает (кстати, компилятор должен предупредить об этом).
Комментариев нет:
Отправить комментарий