Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ychenik007
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 3
#1

Двумерные массивы и возврат значения из функции - C++

04.03.2014, 14:13. Просмотров 285. Ответов 1
Метки нет (Все метки)

Доброго времени суток уважаемые фуромчане!
Решил обратиться к более опытным людям ибо сам допереть не могу
Ситуация вот в чём.Нужно написать программу которая бы выделяла динамическую память под двумерный массив?передавала его в
функцию,а та в свою очередь проверяла бы являются ли элементы этого двумерного массива числами фибоначи.
Задача до безобразия простая по идее.Но вот реализованная мною программа как то не правильно возвращает результат из функции
Не могу понять в чём дело.Понятно что в приведённом мною ниже листинге нужно ещё реализовать освобождение памяти,с этим вопросов нет.
А вот с функцией...,может я не правильно передал двумерный массив?
Буду признателен за замечания по теме.


#include <cstdlib>
#include <iostream>

using namespace std;
int functFibon(int** arr,int,int);// прототип функции


int main(int argc, char *argv[])
{
int i,j;

cout<<"Enter your matrix"<<endl;
int x,y;
cout<<" lines-";cin>>x;//строки

cout<<" columns-";cin>>y;//столбцы



int **neo = new int* [x]; // х строк
for (i = 0; i < x; i++)
neo[i] = new int [y];// у столбцов



for (i=0;i<x;i++)
{
for(j=0;j<y;j++)
cin>>neo[i][j];
}
cout<<endl;
for (i=0;i<x;i++)
{
for(j=0;j<y;j++)
cout<<"\t"<<neo[i][j]<<"\t";// вывод матрицы на экран
cout<<endl<<endl;
}
////////////////////
for (i=0;i<x;i++)
{
int r;
for(j=0;j<y;j++)

r=functFibon(neo,j,i);

if (r==1)
cout<<"Line "<<i+1<<" Fibonacci numbers not found "<<endl;
else
cout<<"Line "<<i+1<<" found Fibonacci numbers - "<<r<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}



int functFibon(int** arr,int m,int n)//функция проверки числа
{
int r=0;
for (int i=0;i<=n;i++)
{
for (int j=2;j<=m;j++)
if ((arr[i][j]=((arr[i][j-1])+(arr[i][j-2]))))
{

r=arr[i][j];
}
else
r=0;
return r;
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2014, 14:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Двумерные массивы и возврат значения из функции (C++):

Возврат значения из функции - C++
Добрый вечер. Вопрос следующий , как возвратить из функции create последнее значение ЛС , чтоб в дальнейшем использовать в main. ...

Возврат значения функции - C++
Что такое возврат значения функции? я уже всю голову изломал, что и куда возвращается? в гугле нашёл мол возвращается результат (куда? в...

Функции и двумерные массивы - C++
Добрый вечер.... Очень нужна помощь в решении задачи... Отсортировать элементы каждой строки квадратной матрицы размерности N по...

Двумерные массивы C++.Функции. - C++
Помогите пожалуйста,очень нужно. В каждой строке матрицы n*m вместо максимального элемента записать количество положительных элементов...

Двумерные массивы и функции - C++
Помогите пожалуйста с заданием: Заполнить квадратную матрицу случайными числами (функция). Написать функцию для поиска минимального...

Двумерные массивы и функции!!! - C++
Ребят,нужно ниписать прогу,которая будет перемножать 2-ый массив с использованием функций! я неким чудом ввела массив,а вот с...

1
Naudiz
14 / 12 / 1
Регистрация: 04.11.2011
Сообщений: 137
04.03.2014, 15:00 #2
Ychenik007, пожалуйста заключайте свой код в тэги в дальнейшем.

Цитата Сообщение от Ychenik007 Посмотреть сообщение
if ((arr[i][j]=((arr[i][j-1])+(arr[i][j-2]))))
Скорее всего имелось в виду(63-я строка):
C++
1
if ((arr[i][j]==((arr[i][j-1])+(arr[i][j-2]))))
Добавлено через 32 минуты
Цитата Сообщение от Ychenik007 Посмотреть сообщение
int functFibon(int** arr,int m,int n)//функция проверки числа
{
int r=0;
for (int i=0;i<=n;i++) //Зачем нужен этот цикл, если поиск чисел Фибоначи осуществляется
//в пределах строки
{
for (int j=2;j<=m;j++)
if ((arr[i][j]=((arr[i][j-1])+(arr[i][j-2]))))
{
r=arr[i][j];
}
else
r=0;
return r;
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
int functFibon(int** arr,int m,int n)//ГґГіГ*êöèÿ ïðîâåðêè Г·ГЁГ±Г«Г*
{
    int r=0;
    for (int j=2;j<=m;j++)
    if ((arr[n][j]==((arr[n][j-1])+(arr[n][j-2]))))
    {
       r=arr[n][j];
    }
    else
        r=0;
    return r;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2014, 15:00
Привет! Вот еще темы с ответами:

Неправильный возврат значения функции - C++
При компиляции если значение меньше или равно 100 программа прекращает работу а если значение выше 100 то работает нормально. ...

Возврат значения из полиморфной функции - C++
Доброго времени суток всем. Ребят не знаю как правильно сформулировать свой вопрос. Суть вот в чем: В базовом классе Cell определена...

Возврат копии значения из функции - C++
Сегодня нашел информацию о том, что можно сохранять ссылку на временный объект, например #include &lt;iostream&gt; int foo() { int...

Двумерные массивы. Процедуры и функции - C++
нужер зделать программку, помогите если сможете: В матрице А (n х n) определите количество строк, элементы ко- торой образуют...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru