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

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

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2016, 15:48   #21
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

Ну а дальше проверяй что вводил и находи положение в этом массиве, а во втором массиве находи положение единичек и выводи нужное имя на экран
netpolice вне форума Ответить с цитированием
Старый 06.12.2016, 16:02   #22
pashaEx
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 18
По умолчанию

Цитата:
Сообщение от netpolice Посмотреть сообщение
Ну а дальше проверяй что вводил и находи положение в этом массиве, а во втором массиве находи положение единичек и выводи нужное имя на экран
давайте будем по частям делать.
1) я не знаю как деаль:
Ну а дальше проверяй что вводил и находи положение в этом массиве

2) а во втором массиве находи положение единичек и выводи нужное имя на экран:
Код:
 for (int index = 0; index != l; ++index)
for (unsigned int j = index; j != l; ++j)
	if (m[index][j] == 1)
		std::cout << nameNode << '\n';
я не программист, мне просто нужно лабу с информатике сдать. и если пишу бред сорян)
pashaEx вне форума Ответить с цитированием
Старый 06.12.2016, 16:24   #23
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

Я в сях сам с консолью практически не работал.
Но
1. объявляешь переменную char aaa[256];
2. Вводишь ее с клавиатуры (сам ищи как это делать)
3. Находишь ее в первой таблице
Код:
int i;
for (i= 0; i<7; ++i)
{
  if (strcmp(aaa, nameNode[i])) break;
}
теперь в i находится место положения твоей "Feering" ну или че введешь, или 7 - значит ненашел

А дальше кек нибудь так

Код:
for (int j= 0; j<7; ++j)
{
  if (m[i][j]==1) вывести nameNode[j];
}
Ну и причесать програмку, наставить защиты от дураков и т.п.
netpolice вне форума Ответить с цитированием
Старый 06.12.2016, 16:42   #24
pashaEx
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 18
По умолчанию

Переделал:
Код:
#include "stdafx.h"
#include <iostream>
#include <cstdlib>

int main()
{
	char nameNode[7][256] =
	{
		"Meldon",
		"Feering",
		"Blaxhall",
		"Dunwich",
		"Harwich",
		"Clacton",
		"Tiptree"
	};
	unsigned array[7][7] = {{ 1, 1, 0, 0, 0, 1, 0 },
						  { 1, 1, 1, 0, 0, 0, 1 },
						  { 0, 1, 1, 1, 1, 0, 0 },
						  { 0, 0, 1, 1, 1, 0, 0 },
					      { 0, 0, 1, 1, 1, 1, 1 },
						  { 1, 0, 0, 0, 1, 1, 1 },
						  { 1, 1, 0, 0, 1, 1, 1 } };
	const unsigned l = 7;
	char name[256];
	std::cin >> name;
	std::cout << "Adjacent peaks:\n";
	
	int  index = 0;
	for (; index < l; ++index)
	{
		if (strcmp(name, nameNode[index])) 
			break;
	}
	for (int j = 0; j < 7; ++j)
	{
		if (array[index][j] == 1)
			std::cout << nameNode[j] << "\n";
	}
	system("pause");
	return 0;
}
но выводит не правильно результат:

а должно Harwich,
Tiptree
Meldon и мне кажеться само себя оно не должно выводить
Изображения
Тип файла: png ssaassa.png (4.6 Кб, 13 просмотров)

Последний раз редактировалось pashaEx; 06.12.2016 в 16:45.
pashaEx вне форума Ответить с цитированием
Старый 06.12.2016, 17:08   #25
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

поставь точку останова на
Код:
 for (int j = 0; j < 7; ++j)
И посмотри чему равно index

Может break не отработал, где то я слышал что он не для for

Ну значить добавь еще переменную перед первым for и вместо бряка поставь
Код:
eee = index;
и внизу используй еее

Да
Код:
for (; index < l; ++index)
может и не будет компилятор ругаться

Но как то не почеловечески

Код:
for (index = 0; index < l; ++index)
netpolice вне форума Ответить с цитированием
Старый 06.12.2016, 17:16   #26
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

И по моему "матрица смежности" должна быть семеричной относительно главной диагонали
netpolice вне форума Ответить с цитированием
Старый 06.12.2016, 17:18   #27
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

ААаааа

Здесь
Код:
if (strcmp(name, nameNode[index])) 
			break;
нужно

Код:
if (strcmp(name, nameNode[index])==0) 
			break;
или
Код:
if (!strcmp(name, nameNode[index])) 
			break;
Вечно я про инвертирование забываю
netpolice вне форума Ответить с цитированием
Старый 06.12.2016, 17:18   #28
pashaEx
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 18
По умолчанию

Цитата:
Сообщение от netpolice Посмотреть сообщение
И по моему "матрица смежности" должна быть семеричной относительно главной диагонали
а она не семерична?
делаю так:
Код:
int temp = 0;
	for (; index  != l; ++index)
	{
		if (strcmp(name, nameNode[index])) 
			temp = index;
	}
for (int j = 0; j != l; ++j)
	{
		if (array[temp][j] == 1)
			std::cout << nameNode[j] << "\n";
	}

Последний раз редактировалось pashaEx; 06.12.2016 в 17:22.
pashaEx вне форума Ответить с цитированием
Старый 06.12.2016, 17:24   #29
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

Цитата:
Сообщение от pashaEx Посмотреть сообщение
а она не семерична?
6,0 и 0,6 не равны
netpolice вне форума Ответить с цитированием
Старый 06.12.2016, 17:29   #30
pashaEx
Новичок
Джуниор
 
Регистрация: 06.12.2016
Сообщений: 18
По умолчанию

все ок работает. спасибо за помощь
pashaEx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не связанные (не смежные) диапазоны в UDF Demetros Microsoft Office Excel 2 08.11.2016 21:09
C++ смежные матрицы! Евгеша777 Помощь студентам 1 01.11.2013 21:41
Выделить смежные ячейки. solnce60 Microsoft Office Excel 8 19.05.2013 19:55
Смежные протоколы Federal Помощь студентам 0 21.10.2010 23:26