Выяснить, есть ли среди N населенных пунктов изолированные города - C (СИ) (79549)

Узнай цену своей работы

Формулировка задачи:

Имеются N населённых пунктов (N≤15), и сеть авиалиний, соединяющих эти города. Сеть задана матрицей связности M(N, N), где M(i, j)=0, если города i и j не связаны между собой, и M(i, j)=l - в противном случае. Выяснить, есть ли среди N населенных пунктов изолированные города (такие, в которые нельзя долететь). Мне препод сделал наброски, но что-то тут криво...помогите разобраться:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main(void)
{   clrscr();
const int n=5;
int m[n][n];
randomize();
    for (int i=0;i<n;i++)
{printf("\n");
int s=1;
    for (int j=0;j<n;j++)
{m[i][j]=random(2);
  if (i==j) m[i][j]=0;
  if (i>j) m[i][j]=m[j][i];
  if (m[i][j] == 1) s=0;
printf(" %i",m[i][j]);
}
  if (s) printf("  Город %i является изолированным",i+1);
}
getche();     }
Может что-то можно изменить или упростить? помогите пожалуйста!

Решение задачи: «Выяснить, есть ли среди N населенных пунктов изолированные города»

textual
Листинг программы
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main(void)
{   
   clrscr();
const int n=5;
int m[n][n];
randomize();
    for (int i=0;i<n;i++)
    {
        printf("\n");       
            for (int j=0;j<n;j++)
            {
                m[i][j]=random(2);
                if (i==j) m[i][j]=0;
                if (i>j) m[i][j]=m[j][i];               
                printf(" %i",m[i][j]);
            }       
    }
    
for (int i=0;i<n;i++)
    {       
        int s=0;
            for (int j=0;j<n;j++)
            {
                s+=m[i][j];             
            }
        if (s==0) printf(" Город %i является изолированным \n");
    }
        
getche();     
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы