Форум программистов, компьютерный форум CyberForum.ru

Передача небольшой матрицы в функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция не работает (максимальный элемент массива) http://www.cyberforum.ru/cpp-beginners/thread772581.html
Нужно написать функцию, которая находила бы максимальный элемент массива. Мой код: #include <iostream> #include <conio.h> using namespace std; const int size = 10; int max_find(int *arr, int size, int max) {
C++ Расчет сложного процента Ребят, подскажите почему не получается правильно подсчитать процент в конце каждого года? Суть задачи: вносим депозит в банк 1000$ под 5% годовых. Доход остается на депозите, нужно подсчитать сумму денег после каждого года на протяжении 10 лет. Желательно посчитать с помощью структуры "for" #include "stdafx.h" #include <iostream> #include <math.h> http://www.cyberforum.ru/cpp-beginners/thread772574.html
C++ Кодировки, языки
Здравствуйте. Не могу разобраться с тем как работать с файлами и строками на разных языках. Русский получилось писать с помощью локали вот так: wofstream out("test.html", ios::binary); wchar_t* somestring = L"Зеленый цвет"; out.write(somestring, wcslen(somestring)); Но пишет в ANSI. Хотелось бы узнать как менять кодировку и писать любые языки. Вот такое уже не катит:
Что за ошибка? C++
Доброго времени суток! Передо мной стоит ужасающая, но вместе с тем и потрясающая задача: за неделю освоить базы, основы плюсов. :umnik: Теорию прошла раз двадцать и, уверившись в том, что уж простенькую линейную смогу, с энтузиазмом принялась кодить, но тут же наткнулась на неизвестную проблему - которая, кстати, не предусмотрена ни в одном из пособий по плюсам, которыми я располагаю. ...
C++ Как вернуть массив обьектов для дальнейшей работы с ним? http://www.cyberforum.ru/cpp-beginners/thread772541.html
#include <iostream> class Ex { public: Ex(char *);//конструктор ~Ex();//деструктор (пока не используется) Ex *func(); void func2(); private: char * bufer;
C++ из RTF в TXT Как реализовать конвертацию текста из RTF в TXT с применением паттерна Builder? подробнее

Показать сообщение отдельно
SeaMonster
15 / 15 / 0
Регистрация: 31.12.2012
Сообщений: 101

Передача небольшой матрицы в функцию - C++

27.01.2013, 05:33. Просмотров 385. Ответов 4
Метки (Все метки)

Если написать такой пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<math.h>
#include<conio.h>
 
int FUNC(const int arg[2][2]){
 printf("\n Matrix:");
 printf("\n\t%d\t%d",arg[0][0],arg[0][1]);
 printf("\n\t%d\t%d",arg[1][0],arg[1][1]);
 return 0;
}
 
int main(){
const int _matr[2][2]={{11,12},{21,22}};
FUNC(_matr); /// Эти две строчки смотрятся криво, и писать лишнюю переменную неудобно, но всё без разговоров работает как надо, функция читает именно эту матрицу, вижу на экране именно то, чего ждал
getch();
return 0;
}
То вызов функции выглядит очень неизяшно, но всё на ура работает.
Но если попробовать лучше и вроде тоже самое, то компилятор посылает!
C++
1
FUNC({{11,12},{21,22}});
Спросил серьезного программиста, он сказал, что так в принципе не может работать, так как расписанный массив создает особый объект, который годен только для создания массива, но не для передачи в функцию. Он предложил написать преобразование в массив интов 2 на 2. И предупредил, что может не всякий компилятор даже так позволит. Кинул строчку пример.
Но строчки (эта буквально по его системе)
FUNC((int[2][2]){{11,12},{21,22}});
и в отчаянной надежде написать чуть надёжней
FUNC((int[2][2])({{11,12},{21,22}}));
тоже не скомпилились. На вторую особенно сильно ругнулось...
У меня сейчас MinGW.

Как можно эту передачу сделать Красиво? Области применения реальные - скажем трехмерное (обобщая - двумерное, четырехмерное, любое Фиксированное и Небольшое) преобразование чего-то. Перекодировка трех цветов... Понятно всё это можно реализовывать по принципу как у меня скомпилилилось, или даже запитывать функцию девятью числами, но как красиво матрицу?

Добавлено через 12 минут
Гм. Заодно спросил друга ещё раз, оказалось он тоже не спит. Он сказал, что может эта вещь из стандарта СИ не вошла в плюсы. Я переделал код на чистый СИ (убрал просто константность) , переименовал на всяк случай файл из cpp в с , и запустил для него gcc а не g++ . И тут же всё скомпилилось и сработало ожидаемо!!!!
Т.е. почему-то (толи увы, толи может есть смысл) эту вещь не пустили в плюсы

Добавлено через 7 минут
Связанные темы посмотрел, но там про другие вещи речь. Там более сложное формально, но именно "на лету" создать матрицу в строке аргументов функции и передать - не просматривается
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru