#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct Punkt { double x,y; } Punkt; /* double - dokładniejszy, no i teraz można użyć Punkt bez słówka strcut */
double random01
() { return rand()/(double)RAND_MAX
; } /* konwertujemy w locie */
void print_punkt
(Punkt punkt
) { printf("x = %lf, y = %lf\n", punkt.
x, punkt.
y); }
Punkt srodkowy_punkt(Punkt *tb,unsigned count) /* dałeś int, czyli można spodziewać się ujemnej wartości? */
{
unsigned i;
Punkt mid={0,0};
for(i=0;i<count;++i) /* nie nadużywaj bez sensu i++ */
{
mid.x+=tb[i].x;
mid.y+=tb[i].y;
}
mid.x/=count;
mid.y/=count;
return mid; /* można zwrócić przez wartość */
}
int main()
{
unsigned i,count;
Punkt mid;
printf("Wpisz ile punktow wylosowac: "); Punkt
*tb
=(Punkt
*)malloc(count
*sizeof(Punkt
)); for(i=0;i<count;++i)
{
tb[i].x=random01();
tb[i].y=random01();
print_punkt(tb[i]);
}
mid=srodkowy_punkt(tb,count); /* tu nie wolno używać sizeof - dostaniesz rozmiar wskaźnika*/
print_punkt(mid);
return 0; /* Kto by chciał pisać EXIT_SUCCESS zamiast 0 ... */
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHRpbWUuaD4KCnR5cGVkZWYgc3RydWN0IFB1bmt0IHsgZG91YmxlIHgseTsgfSBQdW5rdDsgLyogZG91YmxlIC0gZG9rxYJhZG5pZWpzenksIG5vIGkgdGVyYXogbW/FvG5hIHXFvHnEhyBQdW5rdCBiZXogc8WCw7N3a2Egc3RyY3V0ICovCgpkb3VibGUgcmFuZG9tMDEoKSB7IHJldHVybiByYW5kKCkvKGRvdWJsZSlSQU5EX01BWDsgfSAvKiBrb253ZXJ0dWplbXkgdyBsb2NpZSAqLwoKdm9pZCBwcmludF9wdW5rdChQdW5rdCBwdW5rdCkgeyBwcmludGYoInggPSAlbGYsIHkgPSAlbGZcbiIsIHB1bmt0LngsIHB1bmt0LnkpOyB9CgpQdW5rdCBzcm9ka293eV9wdW5rdChQdW5rdCAqdGIsdW5zaWduZWQgY291bnQpIC8qIGRhxYJlxZsgaW50LCBjenlsaSBtb8W8bmEgc3BvZHppZXdhxIcgc2nEmSB1amVtbmVqIHdhcnRvxZtjaT8gKi8KICB7CiAgIHVuc2lnbmVkIGk7CiAgIFB1bmt0IG1pZD17MCwwfTsKICAgZm9yKGk9MDtpPGNvdW50OysraSkgLyogbmllIG5hZHXFvHl3YWogYmV6IHNlbnN1IGkrKyAqLwogICAgIHsKICAgICAgbWlkLngrPXRiW2ldLng7CiAgICAgIG1pZC55Kz10YltpXS55OwogICAgIH0KICAgbWlkLngvPWNvdW50OwogICBtaWQueS89Y291bnQ7CiAgIHJldHVybiBtaWQ7IC8qIG1vxbxuYSB6d3LDs2NpxIcgcHJ6ZXogd2FydG/Fm8SHICovCiAgfQoKaW50IG1haW4oKQogIHsKICAgdW5zaWduZWQgaSxjb3VudDsKICAgUHVua3QgbWlkOwoKICAgc3JhbmQodGltZShOVUxMKSk7CiAgIHByaW50ZigiV3Bpc3ogaWxlIHB1bmt0b3cgd3lsb3Nvd2FjOiAiKTsKICAgc2NhbmYoIiV1IiwmY291bnQpOwogICBQdW5rdCAqdGI9KFB1bmt0KiltYWxsb2MoY291bnQqc2l6ZW9mKFB1bmt0KSk7CiAgIGZvcihpPTA7aTxjb3VudDsrK2kpCiAgICAgewogICAgICB0YltpXS54PXJhbmRvbTAxKCk7CiAgICAgIHRiW2ldLnk9cmFuZG9tMDEoKTsKICAgICAgcHJpbnRfcHVua3QodGJbaV0pOwogICAgIH0KICAgbWlkPXNyb2Rrb3d5X3B1bmt0KHRiLGNvdW50KTsgLyogdHUgbmllIHdvbG5vIHXFvHl3YcSHIHNpemVvZiAtIGRvc3Rhbmllc3ogcm96bWlhciB3c2thxbpuaWthKi8KICAgcHJpbnRfcHVua3QobWlkKTsKICAgcmV0dXJuIDA7IC8qIEt0byBieSBjaGNpYcWCIHBpc2HEhyBFWElUX1NVQ0NFU1MgemFtaWFzdCAwIC4uLiAqLwp9