3.02.2014 / 18:49 | |
Bogdan-G Пользователь Сейчас: Offline
Имя: Богдан Откуда: Москва Регистрация: 13.02.2011
| Gaucer, а значения массива как и n откуда берем? А может через while сделать? Следуя логике тут цикл, через некое кол-во раз вылет будет.
Изменено Bogdan-G (3.02 / 18:55) (всего 3 раза) |
3.02.2014 / 18:57 | |
Gaucer Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.04.2012
| Bogdan-G, надо рекурсией. массив из основной программы.
|
3.02.2014 / 18:58 | |
Gaucer Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.04.2012
| если не было бы условия рекурсии, то for и нет проблем
|
3.02.2014 / 19:00 | |
Bogdan-G Пользователь Сейчас: Offline
Имя: Богдан Откуда: Москва Регистрация: 13.02.2011
| Gaucer, массив чисел? там есть отрицательные числа? Можно и вечный фор запилить. Может ретурн сделать а то так и до -1000 можно дойти? аннимон, там сама функция себя вызывает.
Изменено Bogdan-G (3.02 / 19:00) (всего 1 раз) |
3.02.2014 / 19:01 | |
Gaucer Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.04.2012
| #include <stdio.h>
int f1(int A[10][10], int n) {
int k=1;
if((n > 0) && (n < 6)) {
if(A[n][3]%2==0) {
k=k*A[n][3];
}
n--;
f1(A, n);
}
return k;
}
void main() {
int A[10][10];
for(int i=1; i <= 5; i++) {
for(int j=1; j <= 5; j++) {
A[i][j] = rand()%19-8;
}
}
for(int i=1; i <= 5; i++) {
for(int j=1; j <= 5; j++) {
printf("%3d ", A[i][j]);
}
printf("\n");
}
f1(A, 5);
} // main
|
3.02.2014 / 19:03 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Bogdan-G, спасибо, кэп.
Я как раз условия выхода и прописал. Пока n больше ноля, пусть функция сама себя вызывает, иначе вхолостую будет работать.
Что-то твой прошлый код совсем от этого отличается. Так вроде всё верно.
__________________
let live Изменено aNNiMON (3.02 / 19:06) (всего 2 раза) |
3.02.2014 / 19:06 | |
Gaucer Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.04.2012
| Что-то твой прошлый код совсем от этого отличается. Так бы и сразу.то была функция, это вся прога)
|
3.02.2014 / 19:07 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Gaucer, было же не так. На скобки фигурные глянь.
__________________
let live |
3.02.2014 / 19:09 | |
Gaucer Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.04.2012
| я это сейчас уже поменял.. она теперь не жалуется на память, но не выводит k
|
3.02.2014 / 19:15 | |
Freddy Пользователь Сейчас: Offline
Имя: Игорь Откуда: Воронеж Регистрация: 30.01.2010
| Gaucer (03.02.2014/18:44) void f1(int A[10][10], int n) {int k=1;if((n > 0) && (n < 6)) {if(A[n][3]%2==0) {k=k*A[n][3];printf("%d",k);}}n--;f1(A, n);}она рекурсивно проходит третий столбец, но завершается неправильнопосле строчки с printf добавь P. S. индекс третьего столбца - 2, не забывай, что нумерация идёт с нуля. |