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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2013, 00:41   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Эта запись означает: у структуры maxs[0] установить значение поля k1 в значение i.
Чтобы вывести:
Код:
for (i = 0; i < max_count; ++i)
    printf("%d %d\n", maxs[i].k1, maxs[i].k2);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 31.05.2013, 00:55   #12
tatiana2472
 
Регистрация: 30.05.2013
Сообщений: 8
По умолчанию

Вроде всё сделала но гдето затясалось ошибка, что то мне подсказывает что сдесь
Код:
 if (l > max) {
    max_count = 1;
    maxs[0].k1 = i;
    maxs[0].k2 = j;
} else if (fabs(l - max) < eps) {
    maxs[max_count].k1 = i;
    maxs[max_count].k2 = j;
    ++max_count;
tatiana2472 вне форума Ответить с цитированием
Старый 31.05.2013, 01:00   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Да, я забыл 1 моментик.
Код:
if (l > max) {
    max = l;
    max_count = 1;
    maxs[0].k1 = i;
    maxs[0].k2 = j;
} else if (fabs(l - max) < eps) {
    maxs[max_count].k1 = i;
    maxs[max_count].k2 = j;
    ++max_count;
} else if (l < min) {
    min = l;
    min_count = 1;
    mins[0].k1 = i;
    mins[0].k2 = j;
} else if (fabs(l - min) < eps) {
    mins[min_count].k1 = i;
    mins[min_count].k2 = j;
    ++min_count;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 02.06.2013, 22:08   #14
tatiana2472
 
Регистрация: 30.05.2013
Сообщений: 8
По умолчанию

Всё-таки код с использованием структуры для меня сложноват да и препод не поверит что я аткое написала, проверьбте можалйста мой код и если возможно как-нибуть улучшить эффективность програаммы,так как второй раз считать расстояние для каждый точек не айс.
Код:
#include <stdio.h>
 #include <math.h>
 #include <stdlib.h>

 void main()
 {
 int n,i,j;
 float max,l,min;

 printf("Vvedi n");
 scanf("%d",&n);
 float a[n],b[n];

 printf("vvedi x u y");
 for (i=0;i<=n-1;i++)
 scanf("%f %f", &a[i],&b[i]);
 l=abs(a[1]-a[0])+abs(b[1]-b[0]);
 max=l;min=l;

 for(i=0;i<=n-2;i++)
 for (j=i+1;j<=n-1;j++)
 { l=abs(a[i]-a[j])+abs(b[i]-b[j]);
 if (l>=max) max=l;
 if (l<=min) min=l;
}

for(i=0;i<=n-2;i++)
 for (j=i+1;j<=n-1;j++)
 { l=abs(a[i]-a[j])+abs(b[i]-b[j]);
 if (l==max) printf("\n nomer maximum = %d %d",i+1,j+1);
 if (l==min) printf("\n nomer minimum = %d %d",i+1,j+1);
 }
 }
tatiana2472 вне форума Ответить с цитированием
Старый 02.06.2013, 23:22   #15
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вместо:
Код:
if (l>=max) max=l;
 if (l<=min) min=l;
Код:
if (l>max) max=l;
else if (l<min) min=l;
Вместо:
Код:
if (l==max) printf("\n nomer maximum = %d %d",i+1,j+1);
if (l==min) printf("\n nomer minimum = %d %d",i+1,j+1);
Код:
if (fabs(l-max) < 0.00001) printf("\n nomer maximum = %d %d",i+1,j+1);
else if (fabs(l-min) < 0.00001) printf("\n nomer minimum = %d %d",i+1,j+1);
Вы можете создать вместо 1 массива структур 2 массива целых чисел. В любом случае, код станет больше, потребуется больше памяти, но при большом количестве точек даст прирост скорости (по идее ).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расстояние между точками bumer7721 Помощь студентам 0 22.03.2012 19:16
СИ Найти наименьшее расстояние между точками savra Помощь студентам 2 19.04.2011 10:16
Расстояние между точками (Delphi) КатюФа Помощь студентам 3 04.05.2010 14:52
расстояние между точками в евклидовой плоскости CrystaLize Помощь студентам 0 30.11.2009 23:47