Cześć, ostatnio przerabiałem zadanie "Prostokąty" ze spoj'a. Zadanie polega na wczytaniu z wejścia:
1 linia - ilość prostokąta
n linia - A B C D ; A,B - długości boków prostokąta nr 1 C,D - długość boków prostokąta nr 2.
Natknąłem się na pewien problem a mianowicie licząc pole używając funkcji i zapisując wynik do zmiennej po odczytaniu okazuje się ze wyniki są podane w odwrotnej kolejności.
Np przy danych wejściowych 1|20 20 30 30 otrzymuje wynik 900 400 a powinienem 400 900. Wygląda to jakby czytało tablicę od tyłu.
Jakie błędy popełniłem? Z góry dzięki za pomoc :)
#include <cstdlib>
#include <iostream>
using namespace std;
int pole( int a, int b )
{
return a * b;
}
int main()
{
int MAX;
cin >> MAX;
int* t = (int*)calloc( MAX * 4, sizeof( int ) );
int* pf = t;
for (int i = 0; i < MAX; i++)
{
cin >> *t++ >> *t++ >> *t++ >> *t++;
}
for (int i = 0; i < MAX; i++)
{
int x = pole( *pf++, *pf++ );
int y = pole( *pf++, *pf++ );
printf( "%d,%d", x, y );
}
}