tablica dwuwymiarowa do funkcji

0

Mam prosty program:

#include <stdio.h>

int f(int n)
{
	if (n%2 != 0)
		return (n-5)*n;
	else
		return n/2+n*n;
}

void print_results(int *t, int k)
{
	int i;

	for (i=0; i<k; i++)
	{
		printf("f(%d) = %d\n", t[i][0], t[i][1]);
	}
}

int main()
{
	int t[200][2], a, b, i, j;

	do
	{
		printf("Podaj poczatek przedzialu: ");
		scanf("%d", &a);
		printf("Podaj koniec przedzialu: ");
		scanf("%d", &b);
		if ( a > b ) printf("Poczatek nie moze byc wiekszy od konca!!!\n");
		else if (b-a > 200) printf("Maksymalnie 200 liczb!\n");
	} while (a > b || b-a>200);

	for (i=a,j=0; i<=b; i++,j++) 
	{
		t[j][0] = i;
		t[j][1] = f(i);
	}

	printf("\n\n");
	
	print_results(t, j);

	getch();
	return 0;
}

I problem tkwi w tym że nie wiem jak przesłać tablicę dwuwymiarową do procedury print_results.

0
void print_results(int t[][2], int k)
0

Podmień to:
void print_results(int *t, int k)
na to:
void print_results(int (*t)[2], int k)

Przy wskaźniku na tablice wielowymiarowe musisz podać wszystkie wymiary, prócz ostatniego

0

wystarczy ,że zamienisz wywołanie funkcji na: print_results(t[0], 200) i zmodyfikujesz funkcję tak aby interpretowała pointer tak jak do jednowymiarowej tablicy

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