Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2010, 13:36   #1
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию Более действенный алгоритм.

Вот мое решение к приведенной задаче. Но оно очень нерациональное. У кого будут идеи? Как ее еще можно решить?

Код:
#include <stdio.h>
#include <math.h>

int func(int (*mas)[2],int i,int j,int t){
    double a,b,c;
    a=sqrt((mas[i][0]-mas[j][0])*(mas[i][0]-mas[j][0])+(mas[i][1]-mas[j][1])*(mas[i][1]-mas[j][1]));
    b=sqrt((mas[i][0]-mas[t][0])*(mas[i][0]-mas[t][0])+(mas[i][1]-mas[t][1])*(mas[i][1]-mas[t][1]));
    c=sqrt((mas[t][0]-mas[j][0])*(mas[t][0]-mas[j][0])+(mas[t][1]-mas[j][1])*(mas[t][1]-mas[j][1]));
    if(a==b||b==c||c==a){return 1;}
    return 0;
}

int main(){
    FILE *in,*out;
    in=fopen("triangle.in","r");
    out=fopen("triangle.out","w");
    int n,point[1500][2]={0},kol=0,i,j,t;
    fscanf(in,"%d",&n);
    for(i=0;i<n;i++){
            fscanf(in,"%d %d",&point[i][0],&point[i][1]);
            }
    for(i=0;i<n;i++){
            for(j=i+1;j<n;j++){
                    for(t=j+1;t<n;t++){
                            if(func(point,i,j,t)==1)kol++;
                            }
                    }
            }
    fprintf(out,"%d",kol);
}
Вложения
Тип файла: doc Треугольники.doc (31.5 Кб, 19 просмотров)
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какое программирование в наше время более востребовано и более рентабельно? iukash Свободное общение 18 29.10.2009 13:02
изменение 2х и более div'ов lennyTT JavaScript, Ajax 1 07.07.2009 20:34
Музыка - и ничего более... SuperVisor Свободное общение 55 10.01.2009 22:31
Более 4 миллиардов MAKTE Общие вопросы C/C++ 2 16.05.2008 20:11
массивы более 64 кб Alar Паскаль, Turbo Pascal, PascalABC.NET 1 30.10.2006 14:25