Вниз  C / C++
- 3.02.2014 / 18:49
Bogdan-G
  Пользователь

Bogdan-G 
Сейчас: Offline
Gaucer, а значения массива как и n откуда берем?
А может через while сделать?
Следуя логике тут цикл, через некое кол-во раз вылет будет.

Изменено Bogdan-G (3.02 / 18:55) (всего 3 раза)
- 3.02.2014 / 18:57
Gaucer
  Пользователь

Gaucer 
Сейчас: Offline
Bogdan-G, надо рекурсией. массив из основной программы.
- 3.02.2014 / 18:58
Gaucer
  Пользователь

Gaucer 
Сейчас: Offline
если не было бы условия рекурсии, то for и нет проблем
- 3.02.2014 / 19:00
Bogdan-G
  Пользователь

Bogdan-G 
Сейчас: Offline
Gaucer, массив чисел? там есть отрицательные числа? Можно и вечный фор запилить. Может ретурн сделать а то так и до -1000 можно дойти?
аннимон, там сама функция себя вызывает.

Изменено Bogdan-G (3.02 / 19:00) (всего 1 раз)
- 3.02.2014 / 19:01
Gaucer
  Пользователь

Gaucer 
Сейчас: Offline
  1. #include <stdio.h>
  2.  
  3. int f1(int A[10][10], int n) {
  4. int k=1;
  5.     if((n > 0) && (n < 6)) {
  6.         if(A[n][3]%2==0) {
  7.                 k=k*A[n][3];
  8.  
  9.         }
  10.         n--;
  11.         f1(A, n);
  12.       }
  13.      return k;
  14. }
  15.  
  16. void main() {
  17. int A[10][10];
  18.  
  19.     for(int i=1; i <= 5; i++) {
  20.             for(int j=1; j <= 5; j++) {
  21.                 A[i][j] = rand()%19-8;
  22.             }
  23.     }
  24.  
  25.     for(int i=1; i <= 5; i++) {
  26.             for(int j=1; j <= 5; j++) {
  27.                 printf("%3d ", A[i][j]);
  28.     }
  29.     printf("\n");
  30.     }
  31.  
  32. f1(A, 5);
  33. } // main

- 3.02.2014 / 19:03
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Bogdan-G, спасибо, кэп.

Я как раз условия выхода и прописал.
Пока n больше ноля, пусть функция сама себя вызывает, иначе вхолостую будет работать.


Что-то твой прошлый код совсем от этого отличается.
Так вроде всё верно.
__________________
 let live

Изменено aNNiMON (3.02 / 19:06) (всего 2 раза)
- 3.02.2014 / 19:06
Gaucer
  Пользователь

Gaucer 
Сейчас: Offline
Что-то твой прошлый код совсем от этого отличается. Так бы и сразу.то была функция, это вся прога)
- 3.02.2014 / 19:07
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Gaucer, было же не так. На скобки фигурные глянь.
__________________
 let live
- 3.02.2014 / 19:09
Gaucer
  Пользователь

Gaucer 
Сейчас: Offline
я это сейчас уже поменял.. она теперь не жалуется на память, но не выводит k
- 3.02.2014 / 19:15
Freddy
  Пользователь

Freddy 
Сейчас: Offline
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 добавь
  1. return;
P. S. индекс третьего столбца - 2, не забывай, что нумерация идёт с нуля.
Наверх  Всего сообщений: 2777
Фильтровать сообщения
Поиск по теме
Файлы топика (111)