Выяснить, есть ли среди 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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д