Файл должен быть открыт для записи перед вызовом функции
void transposeandprint(FILE *f, double *array, size_t r, size_t c)
{
for(size_t col = 0; col < c; col++)
{
for(size_t row = 0; row < r; row++)
{
fprintf(f, "%f%s", array[row * c + col], row == r - 1 ? "\n" : ",");
}
}
}
double data[3][5] =
{
{1.0, 2.0, 3.0, 4.0, 5.0},
{1.1, 2.1, 3.1, 4.1, 5.1},
{1.2, 2.2, 3.2, 4.2, 5.2},
};
int main()
{
transposeandprint(stdout, data, 3, 5);
return 0;
}