Dobry wieczór, mógłby ktoś mi znaleźć winowajcę błędu? Kompilator niestety z jakiegoś powodu wyświetla tylko "run-time check failure #2 - S", więc nawet nie wiem jaka zmienna może to powodować.. A sam albo jestem ślepy, albo za głupi żeby go znaleźć :P Program ma obliczać minimalny prostokąt ograniczający wprowadzane obiekty.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void point(int *minx, int *miny, int *maxx, int *maxy) {
int x, y;
scanf("%d%d", &x, &y);
if (x < *minx) *minx = x;
if (x > *maxx) *maxx = x;
if (y < *miny) *miny = y;
if (y > *maxy) *maxy = y;
}
void circle(int *minx, int *miny, int *maxx, int *maxy) {
int x, y, r;
scanf("%d%d%d", &x, &y, &r);
if ((x - r) < *minx) *minx = x - r;
if ((x + r) > *maxx) *maxx = x + r;
if ((x - r) < *miny) *miny = y - r;
if ((x + r) > *maxy) *maxy = y + r;
}
void line(int *minx, int *miny, int *maxx, int *maxy) {
int x1, x2, y1, y2;
scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
if (x1 < x2) {
if (x1 < *minx) *minx = x1;
if (x2 > *maxx) *maxx = x2;
}
else {
if (x2 < *minx) *minx = x2;
if (x1 > *maxx) *maxx = x1;
}
if (y1 < y2) {
if (y1 < *miny) *miny = y1;
if (y2 > *maxy) *maxy = y2;
}
else {
if (y2 < *miny) *miny = y2;
if (y1 > *maxy) *maxy = y1;
}
}
void main() {
int t, n, minx, maxx, miny, maxy;
char type;
scanf("%d", &t);
while (t--) {
minx = 10000, maxx = -10000, miny = 10000, maxy = -10000;
scanf("%d", &n);
while (n--)
{
scanf("%s", &type);
if (type == 'p') point(&minx, &miny, &maxx, &maxy);
else if (type == 'c') circle(&minx, &miny, &maxx, &maxy);
else line(&minx, &miny, &maxx, &maxy);
}
printf("%d %d %d %d", minx, miny, maxx, maxy);
}
}
Wiem, że straszny tu burdel, ale przede wszystkim chcę zrobić wpierw tak, żeby program zadziałał, a potem spróbuję go uporządkować :P