Može li netko provjeriti ovaj zadatak? Izbacuje mi krivo rješenje, a nemogu naći grešku.
ZAD:
Denirajte tip duzina za pohranu podatka o jednoj duzini u R2 (odredeno koordinatama x0, y0, x1 i x1), tako da bude moguca deklaracija duzina d;. U strukturi smiju biti samo polja koja su nuzna za rjesenje ovog zadatka.
Definiraj funkciju koja kao argument prihvaca niz duzina koji sortira silazno po duljini duzine.
Moje rješenje:
[code:1]#include <stdio.h>
#include <stdlib.h>
#include<math.h>
typedef struct _duzina{
double x0,y0,x1,y1;
}duzina;
double duljinaduzine(duzina *d)
{
return sqrt(pow(d->x0-d->x1,2)+pow(d->y0-d->y1,2));
}
void sortiraj (duzina *d1,int n)
{
int i,j;
duzina t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(duljinaduzine(&d1[i])<duljinaduzine(&d1[j]))
{
t=d1[i];
d1[i]=d1[j];
d1[j]=t;
}
}
int main( void )
{
duzina *d1;
int n,i;
printf("\nunesi duljinu niza duzina:");
scanf("%d",&n);
d1=(duzina*)malloc(n*sizeof(duzina));
for(i=0;i<n;i++)
{
printf("unesi x0 y0 x1 y1 za %d. duzinu ",i+1);
scanf("%lf %lf %lf %lf",&d[i].x0,&d[i].y0,&d[i].x1,&d[i].y1);
}
sortiraj(d1,n);
printf("sortirane duzine:");
for(i=0;i<n;i++)
printf("\n%d. duzina: x0=%f y0=%f x1=%f y1=%f",i+1,d1[i].x0,d1[i].y0,d1[i].x1,d1[i].y1);
free(d1);
return 0;
}[/code:1]
Može li netko provjeriti ovaj zadatak? Izbacuje mi krivo rješenje, a nemogu naći grešku.
ZAD:
Denirajte tip duzina za pohranu podatka o jednoj duzini u R2 (odredeno koordinatama x0, y0, x1 i x1), tako da bude moguca deklaracija duzina d;. U strukturi smiju biti samo polja koja su nuzna za rjesenje ovog zadatka.
Definiraj funkciju koja kao argument prihvaca niz duzina koji sortira silazno po duljini duzine.
Moje rješenje:
Kod: | #include <stdio.h>
#include <stdlib.h>
#include<math.h>
typedef struct _duzina{
double x0,y0,x1,y1;
}duzina;
double duljinaduzine(duzina *d)
{
return sqrt(pow(d->x0-d->x1,2)+pow(d->y0-d->y1,2));
}
void sortiraj (duzina *d1,int n)
{
int i,j;
duzina t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(duljinaduzine(&d1[i])<duljinaduzine(&d1[j]))
{
t=d1[i];
d1[i]=d1[j];
d1[j]=t;
}
}
int main( void )
{
duzina *d1;
int n,i;
printf("\nunesi duljinu niza duzina:");
scanf("%d",&n);
d1=(duzina*)malloc(n*sizeof(duzina));
for(i=0;i<n;i++)
{
printf("unesi x0 y0 x1 y1 za %d. duzinu ",i+1);
scanf("%lf %lf %lf %lf",&d[i].x0,&d[i].y0,&d[i].x1,&d[i].y1);
}
sortiraj(d1,n);
printf("sortirane duzine:");
for(i=0;i<n;i++)
printf("\n%d. duzina: x0=%f y0=%f x1=%f y1=%f",i+1,d1[i].x0,d1[i].y0,d1[i].x1,d1[i].y1);
free(d1);
return 0;
} |
Zadnja promjena: tidus; 19:29 uto, 23. 6. 2009; ukupno mijenjano 2 put/a.
|