Hirdetés

Új hozzászólás Aktív témák

  • Jester01
    veterán

    Megoldásom:
    #include <stdio.h>

    struct koord
    {
    float x;
    float y;
    };

    void main()
    {
    struct koord pont[10];
    float tav[10];
    int n, i, mem;
    float max=0;

    /* beolvasas */
    printf("\nHany koordinatat szeretne rogziteni?");
    scanf("%d",&n);
    for (i=0; i<n; i++)
    {
    printf("\nAdja meg az x%d koordinatat: ", i+1);
    scanf("%f",&pont[i].x);
    printf("\nAdja meg az y%d koordinatat: ", i+1);
    scanf("%f",&pont[i].y);
    tav[i]==(sqrt(pont[i].x*pont[i].x)+(pont[i].y*pont[i].y));
    }
    for (i=0; i<n; i++)
    if ((pont[i].x)>max)
    {
    max=pont[i].x;
    mem=i;
    }
    else if ((pont[i].y)>max)
    {
    max=pont[i].y;
    mem=i;
    }

    /* kiíratás */
    printf("\nA legtavolabbi koordinata az origotol: %f, %f", pont[mem].x, pont[mem].y);

    }

    Ez nem jó, először szépen kiszámolod a távolságot de azután nem abból keresed a maximumot:

    for (i=0; i<n; i++)
    if ((pont[i].x)>max) {
    max=pont[i].x;
    mem=i;
    } else if ((pont[i].y)>max) {
    max=pont[i].y;
    mem=i;
    }

    Itt miért az x,y-al varázsolsz?
    Helyesebben:

    for (i=0; i<n; i++)
    if (tav[i]>max) {
    max=tav[i];
    mem=i;
    }

    Egyébként ehhez el sem kellene tárolni a pontokat, a maximum távolságot a hozzá tartozó ponttal együtt a bekérő ciklusban is nyilvántarthatod.

    Ja és kellene #include <math.h> az sqrt miatt.

Új hozzászólás Aktív témák