Mam problem z kopiowaniem tablicy 2d do 1d. funkcja pomija mi nie wiedzieć czemu w kopiowaniu elementy na pozycjach od [2] do [5]
http://ideone.com/HBXW6
0
2
Włącz to pod debugerem i zobacz? o_O
1
w ogóle nie musisz niczego przepisywać, w pamięci każda tablica jest jednowymiarowa i tak się możesz nią posługiwać:
ale jeżeli już to powinno być 5i+j a nie ni+j
0
Oto działający przykład:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void onedim(double tab2[][5], double tab3[], int n);
void pokaz(double tab2[][5], int n);
void pokaz1(double tab7[], int n);
int main()
{
int i,j;
double tab[2][5];
double tab1[10];
srand(time(NULL));
for (i=0; i<2; i++)
for(j=0; j<5; j++)
tab[i][j] = rand()%30;
pokaz(tab, 2);
onedim(tab, tab1, 2);
pokaz1(tab1, 10);
system("pause");
return 0;
}
void pokaz(double tab2[][5], int n)
{
int i, j;
for(i=0; i<n; i++)
{
for(j=0; j<5; j++)
printf("%.0lf ", tab2[i][j]);
}
printf("\n");
}
void onedim(double tab2[][5], double tab3[], int n)
{
int l = 0;
int i = 0;
int j = 0;
for(i = 0; i < n; i++)
{
for(j = 0; j < 5; j++)
{
tab3[l] = tab2[i][j];
printf("%.0lf ", tab3[l]);
l++;
}
}
printf("\n");
}
void pokaz1(double tab7[], int n)
{
int i;
for (i=0; i<n; i++)
printf("%.0lf ", tab7[i]);
printf("\n");
}
0
tutaj byl blad, mnozyles n zamiast 5
tab3[i5+j] = tab2[i][j];
printf("%.0lf ", tab3[i5+j]);