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();
}
 

VictorV

LANero Fundador
Miembro del equipo
14 Abr 2001
1,068
Es ese programa se usa iostream.h para usar cin y cout puedes cambiiar esas 2 sentencias por scanf y printf respectivamente
 

ZeN<CyBeRKiLLeR>

LANero oficial
15 Abr 2001
2,486
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
 

navarro

Lanero Reconocido
31 Ene 2004
183
Eco man, todo eso ta bien y solo tenes que aprender la sintaxis de printf y scanf las que son facilitas.
 

emcaeme

Lanero Reconocido
5 Mar 2003
662
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
 

VictorV

LANero Fundador
Miembro del equipo
14 Abr 2001
1,068
no es que sean equivalentes sino que son las basicas una para c y la otra para c++
 

carlos_200022

Lanero Reconocido
5 Dic 2003
163
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.

Tus temas seguidos