PDA

Просмотр полной версии : Задача на СИ



Balbec
04.05.2008, 14:38
У меня есть задачка, я её почти всю сделал, но не могу реализовать алгоритм последний. Помогите пожалуйста :confused:
Задача на теорию графов

Пусть граф G=(X,U), задан матрицей смежности А. Получим матрицу достижимости D графа следующим способом:
1. D = A;
2. Цикл ( )
2.1. Пока (в строке i существует хотя бы одна
не просмотренная 1)
2.1.1. Если ( ) То прибавить к строке i
строку j.
2.2. Конец цикла
3. Конец цикла
4. Печать D
5. Конец


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
clrscr();
int **matrix;
int n;
//------------------Inicializaciya matrix-----------------
//printf("Zadat' s klaviatyri ili pro4itat' iz faila? \n");
//int klav=0;
//scanf("%d",&klav);
//if(klav==1)
// {
int i,j;
matrix=new int*[i];
for(int t=0;t<n;t++)
matrix[i]=new int[j];
printf("Vvedite koli4estvo vershin: ");
scanf("%d",&n);
printf("\n");

for(int q=0;q<n;q++)
{for(int w=0;w<n;w++)
{
printf ("Element [%d,%d]: ",q,w);
scanf ("%d",&matrix[q][w]);
}
printf("\n");
}
/* }
else
{
FILE *f;
int i,j;
matrix=new int*[i];
for(int t=0;t<n;t++)
matrix[i]=new int[j];
f=fopen("my.txt","r");
if (f==NULL) {printf ("Fail ne naiden\n");getch(); exit(0);}
fscanf(f,"%d",&n);
for (int a=0;a<n;a++)
for (int s=0;s<n;s++)
fscanf(f,"%d",&matrix[a][s]);
}*/
//------------------Pe4at' matrix---------------
for(int e=0;e<n;e++)
{for(int r=0;r<n;r++)
{
printf("%3d",matrix[e][r]);}
printf("\n");
}
//--------------------Algoritm postro4nogo slojeniya-----------------
int **dostij,ii,jj;
dostij=new int*[ii];
dostij[ii]=new int[jj];
for (i=0;i<n;i++)
{for(j=0;j<n;j++)
{matrix[i][j]=dostij[i][j];}
}
/*for (int v=0;v<n-1;v++)
{while()
{if(){}
}
}*/
//------------------Pe4at' matrix---------------
printf ("\n");
for(e=0;e<n;e++)
{for(int r=0;r<n;r++)
{
printf("%3d",dostij[e][r]);}
printf("\n");
}
//-----------------------------------------------------
delete matrix;
delete dostij;
getch();
}