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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2013, 00:28   #1
NeLIN
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 25
По умолчанию Массивы

Имеется k селений. Если в селении i расположена больница, то поездка в селение j займет время a[i][j]. Найти номер селения i, в котором выгоднее всего разместить больницу (суммарное время поездок из i во все другие селения должно быть минимальным).

Код:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
 int main()
{
  int i,j,**mas, n, max, t, max_min_i=0;
        printf("Kol-vo naselennih punctov n= ");
        scanf("%d", &n);
  mas = (int **)malloc (n * sizeof (int *));
  for (i = 0; i < n; i++)
  mas [i] = (int *)malloc (n * sizeof (int));
  for(i=1;i<n;i++)  
     for(j=0;j<i;j++)
     {
        printf("Vvod rastoyniy ot %d do %d =",i+1,j+1);
        scanf("%d",&mas[i][j]);
     }
    for(i=0;i<n;i++)  
        mas[i][i]=0;
    for(i=0;i<n-1;i++)  
         for(j=i+1;j<n;j++)
             mas[i][j]=mas[j][i];
  printf("Ishodnie rasstoyniy\n");
  for(i=0;i<n;i++)  
  {
          for(j=0;j<n;j++)
         printf("%d\t",mas[i][j]);  
      printf("\n\n");
  }
   max=mas[0][0];
        for(j=1; j<n; j++)
                if(mas[0][j]>max)
                        max=mas[0][j];
        for(i=1; i<n; i++)
        {
                t=mas[i][0];
                for(j=1; j<n; j++)
                        if(t <mas[i][j])
                                t=mas[i][j];
                if(t<max)
                {
                        max=t;
                        max_min_i=i;
                }
        }
        printf(" Vibiraem %d naselenni punkt", max_min_i+1);
        getch();
 return 0;
}
зачем мы диагональ заполняем 0 и отображаем зеркально
Код:
 for(i=0;i<n;i++)  
        mas[i][i]=0;
    for(i=0;i<n-1;i++)  
         for(j=i+1;j<n;j++)
             mas[i][j]=mas[j][i];
Помогите пожалуйста!!!
NeLIN вне форума Ответить с цитированием
Старый 09.07.2013, 01:11   #2
b2soft
Упртй программер
Форумчанин
 
Регистрация: 26.11.2009
Сообщений: 150
По умолчанию

потому что расстояние из села №1 в село №1 = 0, а расстояние из села №1 в село №2 эквивалентно расстоянию из села №2 в село №1
Помощь с кодом/лабами по С/С++
Контакты: ICQ 623334555 Skype: btwosoft; Mail: b2soft@yandex.ru
b2soft вне форума Ответить с цитированием
Старый 09.07.2013, 08:53   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Зачем кросспостить?!?!

чем тема: Имеется k селений перестала устраивать?!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12