Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <malloc.h>
- typedef struct
- {
- float x, y, z;
- } tochka;
- typedef struct
- {
- tochka A, B;
- } pryamaya;
- int input (pryamaya *p, int n)
- {
- int i;
- for (i=0; i<n; i++)
- {
- printf("Vvedite coordinati 1oi tochki %d pryamoi: ", i+1);
- scanf("%f", &p[i].A.x);
- scanf("%f", &p[i].A.y);
- scanf("%f", &p[i].A.z);
- printf("Vvedite coordinati 2oi tochki %d pryamoi: ", i+1);
- scanf("%f", &p[i].B.x);
- scanf("%f", &p[i].B.y);
- scanf("%f", &p[i].B.z);
- }
- }
- int inicializaciya(int *p, int n)
- {
- int i;
- for (i=0; i<n; i++)
- p[i]=0;
- }
- int invector (pryamaya a, tochka c)
- {
- c.x = a.B.x - a.A.x;
- c.y = a.B.y - a.A.y;
- c.z = a.B.z - a.A.z;
- }
- int parallelnost(pryamaya a, pryamaya b)
- {
- tochka c, d;
- c.x=0; c.y=0; c.z=0;
- d.x=0; d.y=0; d.z=0;
- invector(a,c);
- invector(b,d);
- printf ("%f %f %f \n", c.x, c.y, c.z);
- printf ("%f %f %f \n", d.x, d.y, d.z);
- if ((c.x*d.y == c.y*d.x) && (c.z*d.y == c.y*d.z))
- return 1;
- else
- return 0;
- }
- int ClassEqvivalentnosty(pryamaya *p, int n)
- {
- int i, j, k=0, *Q;
- Q=(int*)malloc(n*sizeof(int));
- inicializaciya(Q,n);
- for (i=0; i<n; i++)
- {
- if (Q[i]==0)
- {
- k++;
- for (j=n-1; j>=i; j--)
- if (parallelnost(p[i], p[j]))
- Q[j]=k;
- }
- }
- free (Q);
- return(k);
- }
- int main()
- {
- pryamaya *p;
- int n;
- printf("vvedite kol-vo pryamih: ");
- scanf("%d", &n);
- p=(pryamaya*)malloc(n*sizeof(pryamaya));
- input(p,n);
- printf("Klassov eqvivalentnosty: %d \n", ClassEqvivalentnosty(p,n));
- free (p);
- system("PAUSE");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement