Mam do zrobienia programy na wskaźnikach, które w funkcji koniec - będą dodawały jedno pole na koniec tablicy.
funkcji wstaw - dodaje we wskazany indeks tablicy i powieksza sie o jeden tablica.
funkcji poczatek - "usuwa" pierwszą liczbe z tablicy.
mam coś takiego, ale ciagle mi wyskakuje bład....
void poczatek(Punkt *tab,int &rozmiar)
{
for (int i = 0; i < rozmiar - 1; i++)
{
tab[i].y = tab[i + 1].y;
tab[i].x = tab[i + 1].x;
}
tab = (Punkt*)realloc(tab, rozmiar*sizeof(Punkt));
}
void koniec(Punkt *tab, int &rozmiar)
{
printf("%d", rozmiar);
tab = (Punkt*)(realloc(tab, (rozmiar)*sizeof(Punkt)));
}
void wstawiaj(Punkt *tab, int &x1, int &rozmiar)
{
double wartosc1, wartosc2;
rozmiar++;
tab = (Punkt*)(realloc(tab, (rozmiar)*sizeof(Punkt)));
printf("Jaka wartosc x%d: ", x1);
scanf("%lf", &wartosc1);
printf("Jaka wartosc y%d: ", x1);
scanf("%lf", &wartosc2);
for (int i = rozmiar - 1; i >= x1; i--)
{
tab[i].x = tab[i - 1].x;
tab[i].y = tab[i - 1].y;
}
tab[x1].x = wartosc1;
tab[x1].y = wartosc2;
}
case '5':
{
printf("ile dodać komorek na koniec tablicy?");
scanf("%d", &j);
rozmiar += j;
koniec(tab, rozmiar);
getchar();
break;
}
case '6':
{
printf("\nzostanie usunieta pierwsza komorka.\n");
rozmiar--;
poczatek(tab, rozmiar);
break;
}
case '0':
{
printf("Tablica:\n");
for (int i = 0; i < rozmiar; i++)
{
printf("%d. X: %3.2f ", i + 1, tab[i].x);
printf(" Y: %3.2f\n", tab[i].y);
}
break;
}
case '7':
{
printf("\nNa jaka pozycje x i y?\n");
scanf("%d", &x1);
if (x1 > rozmiar)
{
printf("Nie chcesz chyba wyjsc poza tablice, prawda towarzyszu?");
}
else
{
wstawiaj(tab, x1, rozmiar);
}
break;
}