Witam
W zadaniu chodzi o to, by po wpisaniu przez użytkownika liczby działek (n) i wymiarów n działek x1, y1, x2, y2 (x1 i y1 to lewy dolny róg prostokąta w układzie współrzędnych, x2 i y2 to prawy górny róg) obliczało powierzchnie wszystkich działek i wyświetlało je na ekranie.
Moje pytania są następujące:
-
Wzór na powierzchnię użyłem w kodzie. Po kompilacji i podaniu wymiarów np. dwóch działek, o wymiarach np. 1 2 3 4 i 5 7 14 10 powierzchnia w tym przypadku pierwszej działki wynosi 0, a druga się liczy już normalnie. Gdzie może być błąd?
-
Na koniec użytkownik ma podać K, czyli jeśli poda 1, a działek jest 6, to wyświetlić mają mu się wymiary 1-szej działki pod względem powierzchni, czyli o największej powierzchni. Gdy mam już powierzchnię np. 10 działek, jaki napisać kod, by po podaniu K, np. powierzchni 5-tej działki wypisało mi jej wymiary?
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n;
cout << "Podaj ilosc dzialek (od 1 do 10 000): " << endl;
cin >> n;
int tab[n][4];
int k = 0;
cout << "Podaj wspolrzedne kartezjanskie dzialek" << endl;
for(int i = 0; i < n; i++)
{ //x1,y1 - lewy dolny rog prostokata
//x2,y2 - prawy gorny rog prostokata
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
tab[i][0] = x1;
tab[i][1] = y1;
tab[i][2] = x2;
tab[i][3] = y2;
}
// powierzchnia
int powierzchnia[n];
int i = 0;
for (int i = 0; i < n; i++)
{
powierzchnia [i] = (tab[i][2] - tab[i][0] ) * (tab[i][3] - tab[i][1]);
cin >> powierzchnia [i];
cout << "powierzchnia dzialki to: " << powierzchnia [i];
}
cout << "Podaj k: " << endl;
cin >> k;
return 0;
}