Форум программистов, компьютерный форум CyberForum.ru

не получается перевести матрицу инцидетности одного графа в другую - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подстроки http://www.cyberforum.ru/cpp-beginners/thread382566.html
Вообщем кое-как дошёл до создание такого кода по разделению строки на подстроки: vector<char*> GetWrdFrmStr(char *inp, const char split) { string str = static_cast<string>(inp); istringstream ist(str); vector<char*> words; char * item; while (getline(ist, str, split)) {
C++ Понимание для чего вообще нужны указатели? Сейчас будет чистый мой тупняк. Слабонервным дальше не читать. Итак, для чего вообще нужны указатели? Я вот не пойму, зачем их надо было вообще придумывать??? Не понимаю их конкретной пользы, смысла. Кто-нибудь может по-человечески объяснить? http://www.cyberforum.ru/cpp-beginners/thread382564.html
Проблема с pow C++
#include <iostream> #include <conio.h> #include <math.h> using namespace std; class Triangle { public: int a,b,c;
Считать массив строк из файла C++
Например есть файл in.txt, с него нужно считать массив строк в мемо, а в другом мемо записать эти же строки в ascii кодах, например: в файле: abc bcd def в первом мемо должно отобразиться то же самое что и в файле, а во втором их коды: 97 98 99 98 99 100 100 101 102 как реализировать такую функцию? заранее спасибо!
C++ глобал в библиотеке, не отображается в дебагере http://www.cyberforum.ru/cpp-beginners/thread382553.html
Использую студию 2010, профешинал. Есть в статик библиотеке глобальная переменная, внутри этой библиотеке в дебагере ее поля вопросиками показываются, а хотя извлекается оттуда все нормально. Но очень мешает отлаживать. Мб кто встречал такие проблемы и знает решение. P.S. глобальная переменная является структурой.
C++ Очередь, С++ здраствуейте, помогите реализовать алгортитм :pardon: С++ , буду признателен =) Смоделировать очередь, в которой реализован такой механизм изъятия элемента из очереди: начало очереди всегда находится в первом элементе массива; при изъятии одного элемента из очереди, все остальные элементы перемещаются на одну позицию ближе к началу массива. После обработки всей заданной входной... подробнее

Показать сообщение отдельно
red2100
0 / 0 / 0
Регистрация: 31.10.2011
Сообщений: 12
12.11.2011, 20:23     не получается перевести матрицу инцидетности одного графа в другую
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
typedef int *pint;
int main ()
{    clrscr();
    int m, n, i, k, j,t,m1,n1,temp;
    pint *a;
    scanf ("%d %d", &m, &n);//размер матрицы смежности для графа а и а1
    a=new pint[m];
    for (i=0; i<m; i++)
    {
    a[i]=new int[n];
    }
 
/////////////////////////////////////////////////////////////
    printf ("k j a[k][j] \n");
    for (i=0; i<m; i++)
    for (j=0; j<n; j++)
    {
    scanf ("%d", &a[i][j]);ввод матрицы смежности для графа а
    }
 
     pint *b;
     printf ("\nm1n1");
    scanf ("%d %d", &m1, &n1);//размер матрицы инцидентности для графа а и а1
    b=new pint[m1];
    for (i=0; i<m1; i++)
    {
    b[i]=new int[n1];
    }
     for (i=0; i<m1; i++)
    for (j=0; j<n1; j++)
    {
      b[i][j]=0;//переход от матрицы смежности к инцидентности для графа а
    }
    pint *a1;
    a1=new pint[m];
    for (i=0; i<m; i++)
    {
    a1[i]=new int[n];
    }
    printf ("k j a1[k][j]  \n");
    for (i=0; i<m; i++)
    for (j=0; j<n; j++)
    {
     scanf ("%d", &a1[i][j]); ввод матрицы смежности для графа а1
    }
       for (i=0; i<m; i++)
       {
         for (j=0; j<n; j++)
           printf ("%d ", a1[i][j]);
        printf ("\n");
       }
        printf ("\n\\\\\\\\\\\\");
       pint *b1;
    b1=new pint[m1];
    for (i=0; i<m1; i++)
    {
    b1[i]=new int[n1];
    }
     for (i=0; i<m1; i++)
    for (j=0; j<n1; j++)
    {
      b1[i][j]=0;
    }
 
   k=0;
     for (i=0; i<m; i++)//переход от матрицы смежности к инцидентности для графа а
    for (j=i; j<n; j++)
 
    if(a[i][j])
    {
    b[i][k]=1;
    b[j][k]=1;
    k=k+1;
    }
 
 
 
     k=0;
     for (i=0; i<m; i++)//переход от матрицы смежности к инцидентности для графа а1
    for (j=i; j<n; j++)
 
    if(a1[i][j])
    {
    b1[i][k]=1;
    b1[j][k]=1;
    k=k+1;
    }
 
 
   
    k=100;
    t=0;
    for( i=0;i<m1;i++)         //  проверка на наличие ребер графа а в графе а1
     for (j=i;j<n1;j++)
     {
     if(b1[i][j]==b[i][j])
      if(b[i][j]==1)
       if(b1[i][j]==1)
        if(k==j)
      {
 
     temp=b1[i][k];
       b1[i][k]=0;
       b1[i][k+1]=temp;
       k++;
      }
 
 
     if(b1[i][j]!=b[i][j])
      {t=k;
       k=j;
       if((t<100)&&(k>=t))
        k=t;
       temp=b1[i][j];
       b1[i][j]=0;
       b1[i][j+1]=temp;
 
 
      }
     }
 
     for (i=0; i<m1; i++)
    {
    for (j=0;j<n1; j++)
       printf ("%d ", b1[i][j]);
    printf ("\n");
    }
 
/////////////////////////////////////////////////////////////
 
for (i=0; i<m; i++)
delete a[i];
delete a;
for (i=0; i<m; i++)
delete b[i];
delete b;
getch ();
}
исходные данные :граф а
0 1 0 1 1
1 0 1 1 0
0 1 0 1 0
1 1 1 0 1
1 0 0 1 0
граф а1
0 1 0 1 1
1 0 1 0 0
0 1 0 0 0
1 0 0 0 1
1 0 0 1 0
на выходе должна матрица в1:
1 1 1 0 0 0 0
1 0 0 1 0 0 0
0 0 0 1 0 0 0
0 1 0 0 0 0 1
0 0 1 0 0 0 1
а получается
1 1 1 0 0 0 0
1 0 0 1 0 0 0
0 0 0 1 0 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 1

подскажите что не так
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru