Пусть будет массив типа:
double g[3][2] = {
{1.2, 2.8},
{3.1, 4.4},
{5.3, 6.5}
};
или вот такой:
double g[3][2][3] = {
{
{1.1, 1.2, 1.3},
{0.1, 0.2, 0.3}
},
{
{0.4, 0.5, 0.6},
{0.7, 0.8, 0.9}
},
{
{11.1, 11.2, 11.3},
{2.5, 2.2, 1.3}
}
};
Задача: Создать функцию которая принимает любой из n-мерных массивов и распечататывает их элементы и значение. Что-то вроде такого:
(по примеру 1го массива)
[0, 0] = 1.2
[0, 1] = 2.8
[1, 0] = 3.1
...
Вот так я хотел это сделать(наивный ;):
void subpr(void* g, const char* s, int level, int size)
{
int i;
for (i = 0; i < size; ++i) {
if (level-1 > 0) {
char buf[50] = "\0";
sprintf(buf, "%s%d, ", s, i);
subpr(g[i], buf, level-1, length(g[i]));
}
else
printf("%s%d] = %g\n", s, i, (double)g[i]);
}
}
И конечно, в итоге компилятор меня послал на все n-букв массива :)
Кто знает как решить такую задачку, и решить ли вовсе?
Похожие темы
- Форум Баг в gcc? (2010)
- Форум Языки в инете (2020)
- Форум Помогите разобраться с sendmsg & recvmsg. (2013)
- Форум Два вопроса (2014)
- Форум Потеря пакетов до шлюза (2019)
- Форум Задачка на Си (2007)
- Форум [openSUSE 12.1/KDE 4.7.2] постоянные тормоза, высокие нагрузки (2012)
- Форум [К&Р: Язык Си] Задачки (2010)
- Новости Результаты опроса разработчиков ПО на StackOverflow 2017 (2017)
- Форум Задачка с массивом строк на Си (2008)