1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

!Нужна помощь в написании задач на С++

Тема в разделе "В помощь учащимся", создана пользователем Гость, 28.02.06.

  1. Гость

    Гость Гость

    Помогите! Вот не хватает сил доделать задачу...

    N треугольников плоскости заданы длинами своих сторон. В каждом треугольнике найти наименьшую из трёх сторон. Среди этих наименьших сторон найти наибольшую и длины соответствующего треугольника.

    Вот что я смогла из себя выдавить,но получилось только частично сделать...
    #include<math.h>
    #include<conio.h>
    #include<stdio.h>
    #include<iostream.h>

    class clx
    { int n;
    float*x,*y;
    public:
    clx(int size)
    {n=size;
    x=new float[n];
    y=new float[n];
    }
    void vyvod ()
    {for(int i=0;i<n;i++)
    cout<<(*(x+i))<<" "<<(*(y+i))<<endl;
    }
    void vod ()
    { for(int i=0;i<n;i++)
    {cin>>(*(x+i));
    cin>>(*(y+i));
    }
    }
    void rast (float x1,float x2,float y1,float y2,float *r)
    { *r=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    }
    void N (float *rmax ,float *x1,float *x2,float *x3,float *y1,float *y2,float *y3)
    {float r1,r2,r3;
    for (int i=0;i<=n-3;i++)
    for (int j=i+1;j<=n-2;j++)
    for (int k=j+1;k<=n-1;k++)
    { rast(*(x+i),*(x+j),*(y+i),*(y+j),&r1);
    rast(*(x+i),*(x+k),*(y+i),*(y+k),&r2);
    rast(*(x+k),*(x+j),*(y+k),*(y+j),&r3);
    if (r2>r3) *rmax=r2 ;
    else *rmax=r3 ;
    if (r1>r2) *rmax=r1;
    else *rmax=r2;
    if (r3>*rmax) *rmax=r3;
    {*x1=*(x+i);*y1=*(y+i);
    *x2=*(x+j);*y2=*(y+j);
    *x3=*(x+k);*y3=*(y+k);
    }
    }
    }
    };
    int main()
    {int m=3;

    int d=0;d<=2;d=d++;
    while (d=2)

    { float rmax,x1,x2,x3,y1,y2,y3;
    clx a1(m);
    a1.vod ();
    a1.vyvod ();
    a1.N(&rmax,&x1,&x2,&x3,&y1,&y2,&y3) ;
    textcolor(12);
    cprintf("rmax=");
    cprintf(" %4.2f ",rmax);
    cout<<endl;
    textcolor(14);
    cprintf("x1=");
    cprintf(" %4.2f ",x1);
    cprintf("x2=");
    cprintf(" %4.2f ",x2);
    cprintf("x3=");
    cprintf(" %4.2f ",x3);cout<<endl;
    cprintf("y1=");
    cprintf(" %4.2f ",y1);
    cprintf("y2=");
    cprintf(" %4.2f ",y2);
    cprintf("y3=");
    cprintf(" %4.2f ",y3); }
    getch ();
    return 0 ;
    }

    Чего-то не то получилось...
     
  2. что-то очень страшное...
    как это можно делать:
    1. задаем массив размера 4*n. каждый столбец - информация по треугольнику.
    2. заполняем длинами сторон.
    3. ищем по каждому столбцу минимум. записываем его в четвертую строку.
    4. ищем по четвертой строке максимум.
    5. выводим первые три строки столбца, в котором находится найденный максимум.