*Zadanie* Wypełnianie tablicy dwuwymiarowej z użyciem funkcji

0

Witam mam do rozwiazania takie zadanie i pare rzeczy w nim nie rozumiem a pare nwm jak napisac. Bylbym wdzieczny za jakies wskazowki czy pomoc w rozwiazaniu bo zalezy mi na pelnym zrozumieniu tego przykladu.

screenshot-20200126190627.png

#include <stdlib.h>
#include <stdio.h>

void wypelnij_1(float* tab, int size, int startowa);	//Kolejne liczby parzyste wieksze od trzeciego argumentu

void wypelnij_2(float(*tab)[34], int wiersze, int startowa);	//Kolejne liczby nieparzyste wieksze od trzeciego argumentu

int main(void)
{
	float tab[12][34];
	
	wypelnij_2(tab, 12, 11);	//Czemu przy wywolaniu tej funkcji, tab[6][0] = 419.000000 zamiast tab[6][0] = 11.000000 ?
								//Specjalnie w tym celu zaczalem od i=6;
	for(int i = 6; i < 12; i++)
	{
		for(int j = 0; j < 34; j++)
		{
			printf("tab[%d][%d] = %f\n", i, j, tab[i][j]);
		}
		printf("\n");
	}

	
}


void wypelnij_1(float* tab, int size, int startowa)
{
	//Nwm jak napisac ta funkcje, skoro wypelniamy tablice2d to da sie to zrobic z takimi argumentami wgl ?
}

void wypelnij_2(float(*tab)[34], int wiersze, int startowa)
{
	float ink = 0.0;
	
	for(int i = 0; i < wiersze; i++)
	{
		for(int j = 0; j < 34; j++)
		{
			tab[i][j] = startowa + ink;
			
			ink += 2.0;
		}
	}
}
0

Nic dziwnego przecież ta funkcja wypełnia tablicę od początku liczbami nieparzystymi wiekszymi od start; poza tym jeśli są wieksze, to chyba powinna wygladać tak:

void wypelnij_2(float(*tab)[34], int wiersze, int start)
{
  float ink = 0.0;
  if (start % 2 == 1) start += 2;
  else ++start;
  for(int i = 0; i < wiersze; i++)
  {
      for(int j = 0; j < 34; j++)
      {
            tab[i][j] = start + ink;

            ink += 2.0;
      }
  }
}
0

No i ma tak dzialac jak dziala tylko czemu nie zaczyna od liczby 11 wypelniac, tak zeby nastepne to byly 13, 15, 17 itp ?

1

Wypisujesz sobie od 6 wiersza to nie widzisz 11 tylko kolejne wartości.

0

Dobra ale co do funkcji wypelnij_1 to czy przy tak zdefinowanych argumentach da sie wypelnic tablice2d ? Bo nie mam wgl pomyslu na to

0

Taka tablica 2d będzie przechowywana w jednym ciągu pamięci (przykład: http://cpp.sh/656tu). Więc w wypelnij_1 tab[size] będzie pierwszym elementem drugiej wiersza.

Myślę, że wypełnianie już ogarniesz sam :)

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