C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Вопросы
Anium
Отправлено: 22.02.2007, 13:36


Ученик-кочегар

Группа: Участник
Сообщений: 16



Доброго времени суток!
Есть прога, помогите плз ответимть на пару вопросов, желательно поподробнее...

CODE
#include <vcl>
#include <stdio>
#include <conio>
#pragma argsused
#pragma hdrstop

using namespace std;

typedef int arr[100];

arr a;

void InputArr(int k,int n)
{
 printf("Type number ");
 int x;
 scanf("%d",&x);
 if(k<n-1) InputArr(k+1,n);
 a[n-k-1]=x;
}

int main(int argc, char* argv[])
{
 printf("Type Array Length ");
 int n;
 scanf("%d",&n);
 InputArr(0,n);
 int i;
 for(i=0;i<n;i++){
   printf("%d",a[i]);
   printf(" ");
 }
 scanf("%");
       return 0;
}

Прога заполняет массив целых чисел значениями в обратном порядке.

Вопросы:
1. Где впервые происходит рекурсивный вызов
2. Для чего нужна эта строчка
scanf("%");
olegenty
Отправлено: 22.02.2007, 13:41


Ветеран

Группа: Модератор
Сообщений: 2412



1. В теле функции InputArr при первом вызове самой себя.
2. Чтобы остановить выполнение программы до нажатия на куда-нибудь.
Anium
Отправлено: 22.02.2007, 15:34


Ученик-кочегар

Группа: Участник
Сообщений: 16



QUOTE
1. В теле функции InputArr при первом вызове самой себя.


а можно поподробней, в какой строчке...
Любитель
Отправлено: 22.02.2007, 16:23


Дежурный стрелочник

Группа: Участник
Сообщений: 53



if ( k < n — 1) InputArr (k + 1, n);

Отредактировано Любитель — 22.02.2007, 16:25
Anium
Отправлено: 22.02.2007, 16:48


Ученик-кочегар

Группа: Участник
Сообщений: 16



Спасибо!

Вернуться в Вопросы программирования в C++Builder