|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.03.2012, 17:43 | #1 |
Форумчанин
Регистрация: 28.02.2011
Сообщений: 122
|
Массив в функцию
Нужно написать фунцию, которая принимает несколько массивов и возвращает массив, скажем:
float Matrix(float A[][], float B[][]){ int i, j; float C[2][2]; C[0][0] = A[0][0]*B[0][0] + A[0][1]*B[1][0]; C[0][1] = A[0][0]*B[0][1] + A[0][1]*B[1][1]; C[1][0] = A[1][0]*B[0][0] + A[1][1]*B[1][0]; C[1][1] = A[1][0]*B[0][1] + A[1][1]*B[1][1]; return C[][]; } В общем не знаю, как правильно передать в функцию массивы и как правильно массив возвращать из функции Окей, я понял, передать в функцию указатели на три массива, один из которых записать результат действий. Только тогда не пойму как правильно производить действия с этими массивами.
Повторенье - мать ученья. И прибежище для лентяев.
Последний раз редактировалось Artem_Kokos; 31.03.2012 в 18:39. Причина: Чуток допер сам. |
31.03.2012, 18:49 | #2 |
Пользователь
Регистрация: 15.03.2012
Сообщений: 57
|
Попробуй вот так. С++ не может весь массив целиком возвратить а только его адрес в памяти.
rowsA - количество строк в массиве A rowsB - ... B Код:
|
31.03.2012, 19:00 | #3 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Крот
facepalm. ты хотя бы язык изучи прежде чем советовать что-либо
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
31.03.2012, 19:09 | #4 |
Пользователь
Регистрация: 15.03.2012
Сообщений: 57
|
Хорошо. Тут ошибся.
Может быть вот так? Код:
|
31.03.2012, 19:19 | #5 |
Форумчанин
Регистрация: 28.02.2011
Сообщений: 122
|
Да, идея именно такова, только компилятор тут ругается на операцию умножения (я не понял почему) и Там вроде когда объявляем функцию как-то вроде по другому задавались аргументы. Точно знаю, что небыло необходимости передавать размерности прямо так, их нужно насколько я помню передавать как отдельный аргумент (примерно как вы предложили в первый раз). Но что-то не могу понять, почему не получается ничего
Повторенье - мать ученья. И прибежище для лентяев.
|
31.03.2012, 19:35 | #6 |
Пользователь
Регистрация: 15.03.2012
Сообщений: 57
|
Код:
Последний раз редактировалось Крот; 31.03.2012 в 19:38. |
31.03.2012, 19:39 | #7 |
Форумчанин
Регистрация: 28.02.2011
Сообщений: 122
|
В общем нечто такое меня получилось:
Код:
на эти четыре строчки умножения элементов массива. Полазил на форумах, почитал темы - там все говорят что нужно делать так. Значит передал я правильно аргументы. Но вот почему ругается на вычисления без понятия.
Повторенье - мать ученья. И прибежище для лентяев.
Последний раз редактировалось Stilet; 31.03.2012 в 20:00. |
31.03.2012, 19:55 | #8 |
Пользователь
Регистрация: 15.03.2012
Сообщений: 57
|
Я не знаю можно так или нет, но проверил и все правильно показывает. без ошибок
Код:
|
31.03.2012, 20:09 | #9 |
Форумчанин
Регистрация: 28.02.2011
Сообщений: 122
|
Мм, по-моему так нельзя вообще
Повторенье - мать ученья. И прибежище для лентяев.
|
31.03.2012, 20:26 | #10 |
Пользователь
Регистрация: 15.03.2012
Сообщений: 57
|
Тут просто передаются адреса первых элементов массивов. А так как все элементы расположены вплотную друг к другу, то можно получить значение любой ячейки массива.
Не знаю, может кто еще что-то другое предложит. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объявить массив через функцию. (С++) | Alendorff | Помощь студентам | 11 | 20.02.2012 18:22 |
Передача указателей на массив в функцию. | nibir | Общие вопросы C/C++ | 14 | 06.07.2011 13:24 |
Как передать Динамический массив в функцию? | RainCat | Помощь студентам | 4 | 13.04.2011 11:25 |
Массив используя функцию и процедуру. | Profan4ik | Помощь студентам | 1 | 30.05.2010 14:06 |
Передача указателя на массив в функцию | loser | Общие вопросы C/C++ | 2 | 19.02.2010 19:41 |