/*
 * =====================================================================================
 *
 *       Filename:  sm2_tab.c
 *
 *    Description:  Srodek masy. Punkt materialny reprezentowany struktura.
 *
 *        Version:  1.0
 *        Created:  12.11.2013 23:44:44
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  Marek Grochowski (2013), 
 *   Organization:  KIS
 *
 * =====================================================================================
 */
#include <stdio.h>

struct punkt
{
   float x, y, z;
   float m;
};

struct punkt srodek(struct punkt p1, struct punkt p2)
{
    struct punkt sm;
    sm.m=p1.m+p2.m;
    sm.x=(p1.m*p1.x+p2.m*p2.x)/sm.m;
    sm.y=(p1.m*p1.y+p2.m*p2.y)/sm.m;
    sm.z=(p1.m*p1.z+p2.m*p2.z)/sm.m;
    return sm;
}

struct punkt wczytaj()
{
   struct punkt p;
   printf("Podaj wsp. x,y,z i mase punktu : ");
   scanf("%f %f %f %f",&p.x,&p.y,&p.z,&p.m);
   return p;
}

void wypisz(struct punkt p)
{
   printf("x=%f\ny=%f\nz=%f\nm=%f\n",p.x,p.y,p.z,p.m);
}


int main()
{
    struct punkt p, p1;
    char dalej='t';

    p.m=0.0;  p.x = 0.0;  p.y = 0.0;  p.z = 0.0; 

    do
    {
      p1 = wczytaj();
      p = srodek(p1,p);
      
      printf("Czy dodac kolejny punkt [t/n] ? ");
      scanf(" %c",&dalej);
    }while(dalej != 'n' );

   printf("Srodek masy:\n");
   wypisz(p);

   return 0;
}
