Помогите кто нибудь!!! Представим что дан неориентированный граф,пири его решении выводится матрица смежности,инцидентности,список вершин и список смежных ребер. Так вот в проге все это прет и вычисляется верно, за исключением матрицы нцидентности — та выводит несколько раз матричный вывод одного и того же ребра:
1-2
2-3 3-1 1-2 хотя надо
1-2 2-3 3-1
1 0 1 1 1 0 1
1 1 0 1 1 1 0
0 1 1 0 0 1 1
Короче нужно в проге както написать условие , что если элемент матрицы инц-ти вывелся однажды,то его повторно ВЫВОДИТЬ НЕ НАДО!
P.S. Помогите кто чем может — пазалуста!!! (спасая одного студента ВЫ спасете как минимум половину группы!!!) _____ИСХОДНИК____:
#include<iostream.h>
#include<conio.h>
int main()
{
int rebro[10][10]={0};
int mar[10][21]={0}, sm[10][20][20]={0}, in[10][20][19]={0},q,i,l,j,k,n,p,g=0;
clrscr();
cout << "Vsego ostanovok: ";cin>>q;
cout<<"Skolko marshrutov: "; cin>>n;
for(i=0;i<n;i++)
{
cout<<"Skolko ost-k y "<<i+1<<"-go marshruta : ";
cin>>mar[i][20];
for(j=0;j<mar[i][20];j++)
{
cout<<"Vvodite "<<j+1<<"-iu ost-ku: ";
cin>>k;mar[i][j]=k-1;
}
for(j=0,l=0;j<mar[i][20]-1;j++)
{sm[0][mar[i][j]][mar[i][j+1]]=sm[0][mar[i][j+1]][mar[i][j]]=1;
in[0][mar[i][j]][g]=1;
in[0][mar[i][j+1]][g]=1;l++;g++;
}
}
i=0;
{
getch();
for(l=0;l<n;l++)
{
cout<<"\n"<<l+1<<"-i marshrut:" ;
for(k=0;k<mar[l][20]-1;k++)
cout<<mar[l][k]+1<<"-";
cout<<mar[l][k]+1;
}
for(j=0;j<q;j++)
{
cout<<"\nv"<<j+1<<" ";
if(j<9)cout<<" ";
for(k=0;k<q;k++)
{
rebro[j][k]=sm[0][j][k];
cout<<sm[0][j][k];
}
cout<<" v"<<j+1;
if(j<9)cout<<" ";
for(k=0;k<g;k++)
{
if(in[0][j][k]!=-1)
cout<<" "; cout<<in[i][j][k];
}
}
cout<<"\n ";
for(k=0;k<q;k++)
cout<<k+1; cout<<" ";
for(k=0;k<g;k++) cout<<"e"<<k+1;
}
int z=1;
for(j=0;j<q;j++)
{
for(k=j;k<q;k++)
{
if(rebro[j][k]==1)
{
cout<<endl;
cout<<"Rebro";cout<<z;cout<<": ";cout<<j+1;cout<<"-";cout<<k+1;
z++;
}
}
}
getch();
return 0;
}
//___________________________________________________кнтрольный пример:
Skolko marsrutow 5
Vsego ostanovok: 5
Skolko ostanowok y 1-go marshruta: 4
Vvedite 1-u ostanovky: 1
Vvedite 2-u ostanovky: 2
Vvedite 3-u ostanovky: 5
Vvedite 4-u ostanovky: 1
Skolko ostanowok y 2-go marshruta: 4
Vvedite 1-u ostanovky: 1
Vvedite 2-u ostanovky: 5
Vvedite 3-u ostanovky: 4
Vvedite 4-u ostanovky: 1
Skolko ostanowok y 3-go marshruta: 4
Vvedite 1-u ostanovky: 3
Vvedite 2-u ostanovky: 5
Vvedite 3-u ostanovky: 4
Vvedite 4-u ostanovky: 3
Skolko ostanowok y 4-go marshruta: 4
Vvedite 1-u ostanovky: 2
Vvedite 2-u ostanovky: 3
Vvedite 3-u ostanovky: 5
Vvedite 4-u ostanovky: 2
Skolko ostanowok y 5-go marshruta: 5
Vvedite 1-u ostanovky: 1
Vvedite 2-u ostanovky: 2
Vvedite 3-u ostanovky: 3
Vvedite 4-u ostanovky: 4
Vvedite 5-u ostanovky: 1
1-i marshrut 1->2->5->1
2-i marshrut 1->5->4->1
3-i marshrut 3->5->4->3
4-i marshrut 2->3->5->2
5-i marshrut 1->2->3->4->1
matrix smeznosti matrix incidentnosti
v1 0 1 0 1 1 v1 1 1 1 0 0 0 0 0
v2 1 0 1 0 1 v2 1 0 0 1 1 0 0 0
v3 0 1 0 1 1 v3 0 0 0 1 0 1 1 0
v4 1 0 1 0 1 v4 0 1 0 0 0 1 0 1
v5 1 1 1 1 0 v5 0 0 1 0 1 0 1 1
1 2 3 4 5 e1e2e3e4e5e6e7e8
Rebro 1:1-2
Rebro 2:1-4
Rebro 3:1-5
Rebro 4:2-3
Rebro 5:2-5
Rebro 6:3-4
Rebro 7:3-5
Rebro 8:4-5
//_____________________________________________________
Не забывайте, пожалуйста, пользоваться тегами [c]...[/c], [code]...[/code] и т.п. для выделения фрагментов кода. -- ПК