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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2019, 21:58   #1
Виктория Алекс
Новичок
Джуниор
 
Регистрация: 26.04.2019
Сообщений: 1
По умолчанию [C] Задан граф в виде количества вершин n<=10

Задан граф в виде количества вершин n<=10 и последовательности
ребер (каждое ребро задается парой смежных вершин). Получить матрицу
смежности.
Проверить, есть ли в графе вершина, смежная со всеми другими
вершинами.
Код:
#include "pch.h" 
#include <stdio.h> 
#include <conio.h> 
#define NMAX 10 /* максимальное число вершин графа */ 
#define RMAX 100 /* максимальное число ребер */ 
/*---------------------------------------------------------*/ 
/* функция ввода матрицы смежности */ 
/*---------------------------------------------------------*/ 
int VvodGraf(int ms[NMAX][NMAX]) 
/* Входные данные: n – количество вершин */ 
/* Выходные данные: g1 – матрица смежности */ 
{ 
int n; //число вершин графа 
int i, j; /* номера вершин */ 
puts("\nVVedite kolichestvo vershin grafa (<=10)"); 
scanf_s("%d", &n); 
//обнуление матрицы смежности 
for (i = 0; i < n; i++) 
for (j = 0; j < n; j++) 
ms[i][j] = 0; 
puts("Vvedite posledovatelnost reber"); 
puts("Zavershenie vvoda nazhatiem -1"); 
i = 0; j = 0; 
while (1) { 
scanf_s("%d%d", &i, &j); 
if (i == -1 || j == -1) break; 
ms[i][j] = 1; 
} 
return n; 
} 
int VIVOD_MATR_SM(int g1[NMAX][NMAX], int n) 
/* Входные данные: g1 – матрица смежности , 
n – количество вершин , 
r – количество ребер */ 
{ int i, j; /* параметры циклов */ 
printf("Matrica smezhnosti\n\n"); 
printf(" ¦ "); 
for (j = 0; j < n; j++) printf("%3d ", j); 
putchar('\n'); 
for (i = 0; i < 3 *n + 2; i++) putchar('-'); 
for (i = 0; i < n; i++) 
{ 
printf("\n%d¦ ", i); 
for (j = 0; j < n; j++) 
printf("%3d ", g1[i][j]); 
} 
putchar('\n'); 
return 0; 
} 
/*------------------------------*/ 
/* главная функция */ 
/*------------------------------*/ 
void main() 
{ int g[NMAX][NMAX]; //матрица смежности 
int n; 
n = VvodGraf(g); 
VIVOD_MATR_SM(g, n); 


}
Виктория Алекс вне форума Ответить с цитированием
Старый 26.04.2019, 22:29   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,552
По умолчанию

Ну это скорее Си, чем С++ . Дык код уже есть - в чем проблема ? Накропать тестовую последовательность - и вперед.
Навскидку - кажется, ввод тут не "парами смежных вершин", а напрямую - вводится матрица смежности.
digitalis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Граф - скрытие и отображение вершин Olejik JavaScript, Ajax 1 31.03.2017 11:11
Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности. Pomogi Помощь студентам 1 03.11.2013 17:29
граф, перебор вершин PianeR Помощь студентам 0 02.12.2010 12:00