ayuda para pasar programa de Grafos c++ a c

Estado
Cerrado para nuevas respuestas.

carlos_200022

Lanero Reconocido
5 Dic 2003
163
Estoy tratando de pasar un programa que consegui de nodos
hecho en C++ a C y
quisiera saber con que se reemplaza el iostram de c++ a c

este es el programa

/*nodos*/


#include <stdio.h>
#include <conio.h>
#include <iostream.h> /*esto a que equivale en c*/

void funcion2(int **,int ,int ,int );
void funcion1(int **,int ,int ,int );

int origen;

void funcion1(int **M,int n,int or,int dest)
{
int cont=0;
for(int i=0;i<n;i++)
{
if(M[or] == 1)
{
cout << i;

for (int j=0;j<n;j++)
if (M[j] == 1)
cont++;
if (cont == 1)
M[or] = 0;

if (i!=dest)
funcion2(M,n,i,dest);
else
{
cout << "\n" << origen-1;
funcion1(M,n,origen-1,dest);
}
}
}
}

void funcion2(int **M,int n,int or,int dest)
{
int cont=0;
for(int i=0;i<n;i++)
{
if(M[or] == 1)
{
cout << i;

for (int j=0;j<n;j++)
if (M[j] == 1)
cont++;

if (cont == 1)
M[or] = 0;

if (i!=dest)
funcion1(M,n,i,dest);
else
{
cout << "\n" << origen-1;
funcion2(M,n,origen-1,dest);
}
}
}
}

void main()
{
int **M, n, or, dest, con, aux;
clrscr();
cout << "Ingrese cantidad de nodos : ";
cin >> n;

M = new int*[n];
for (int i=0;i<n;i++)
M = new int [n];

for (i=0;i<n;i++)
for (int j=0;j<n;j++)
{
if (i==j)
{
printf(" NO EXISTE conexion entre (%d,%d)\n",i+1,j+1);
M[j] = 0;
}
else
{
printf(" Hay conexion (%d,%d) 1/si 0/no = ",i+1,j+1);
cin >> con;
M[j] = con;
}
}

for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
cout << " " << M[j];
cout << "\n";
}

printf("Ingrese nodo origen (del 1 al %d) : ",n);
cin >> origen;
printf("Ingrese nodo destino (del 1 al %d) : ",n);
cin >> dest;

or = origen-1;
dest = dest-1;
/*

// en caso que el origen sea distinto a la primera posision en la matriz
// de adyacencia, reordena la matriz para que as¡ sea...
if (or != 0)
{
for (i=0;i<n;i++) //cambia filas
{
aux = M[0];
M[0] = M[or];
M[or] = aux;
}

cout << "\n";
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
cout << " " << M[j];
cout << "\n";
}
getche();

for (i=0;i<n;i++) //cambia columnas
{
aux = M[0];
M[0] = M[or];
M[or] = aux;
}


cout << "\n";
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
cout << " " << M[j];
cout << "\n";
}
getche();


}

// en caso que el destino sea distinto a la ultima posision en la matriz
// de adyacencia, reordena la matriz para que as¡ sea...
if (dest != (n-1))
{
for (i=0;i<n;i++) //cambia filas
{
aux = M[0];
M[0] = M[dest];
M[dest] = aux;
}

cout << "\n";
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
cout << " " << M[j];
cout << "\n";
}
getche();


for (i=0;i<n;i++) //cambia columnas
{
aux = M[0];
M[dest] = M[dest];
M[dest] = aux;
}

cout << "\n";
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
cout << " " << M[j];
cout << "\n";
}
getche();
}

for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
cout << " " << M[j];
cout << "\n";
}
getche();
*/
//restringe la busqueda para que no entre en loop

for (i=0;i<n;i++)
M[or] = 0;

for (j=0;j<n;j++)
M[dest][j] = 0;

cout << "\n";
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
cout << " " << M[j];
cout << "\n";
}

getche();
cout << or;
funcion1(M,n,or,dest);
getche();
}
 
Es ese programa se usa iostream.h para usar cin y cout puedes cambiiar esas 2 sentencias por scanf y printf respectivamente
 
y las funciones que te dice Victorv estan en stdio.h sino estoy mal, entonces no tenes que hacer otra cosa sino que reemplazar esas llamadas a cout y cin por printf y scanf respectivamente y ya tal cual lo dice don VictorV
 
Eco man, todo eso ta bien y solo tenes que aprender la sintaxis de printf y scanf las que son facilitas.
 
Texto Originalmente Escrito por El_Rulas
Ese <iostream.h> equivale a <stdio.h> y ya la tienes incluida.

ah si, esas dos librerias son equivalentes??

tengo que reevaluar lo que aprendi en primer semestre
 
no es que sean equivalentes sino que son las basicas una para c y la otra para c++
 
Ya gracias ahora estoy entendiendo más, pero tengo otra duda


For(i=0;i<max;i++)
{
cout<<"real para posicion"<<i<<":";
cin >>vector;
}

cout <<end1<<end1;
For(i=0;i<max;i++)
{
cout<<setw(4)<<vector;
}


Aqui hay un extracto de un programa
Aqui quisiera saber a que equivale

end1 y setw (4) en "C"

gracias
 
Estado
Cerrado para nuevas respuestas.

Los últimos temas