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