Problem z kopiowaniem tablicy dwuwymiarowej do jednowymiarowej

0

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

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ć:

http://ideone.com/2jlWS

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[i
5+j] = tab2[i][j];
printf("%.0lf ", tab3[i
5+j]);

1 użytkowników online, w tym zalogowanych: 0, gości: 1