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
|
Спасибо! |
|