elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / programa punteros c en: 5 Marzo 2015, 22:01 pm
No se por que el programa se salta el segundo scanf. Ayuda plis

Código:
#include <stdio.h>
#include <stdlib.h>

struct D{
   int dato,dato2;
};

int main(){
 
  struct D d;
  struct D *p=&d;
 
  printf("introduce dato: \n");
  scanf("%d",&(*p).dato);
  printf("dato guardado con punto ((*D).dato) %d \n",(*p).dato);
  printf("introduce dato 2: \n");
  scanf("vuelve a escribir un valor para dato(%d)\n",&p->dato2);
  printf("dato guardado por flecha(->) %d \n",p->dato2);
 
  system("PAUSE");
  return 0;
}

GRACIAS.
2  Programación / Programación C/C++ / Cadenas a variables!! urgentee:( en: 14 Septiembre 2014, 19:30 pm
alguien tiene idea de como hacer este ejercicio??

Escribir un algoritmo que lea en una línea (hasta que se pulse Return), mediante una
cadena de caracteres, el nombre, la edad y el sexo de una persona y los almacene en tres
variables distintas denominadas nombre, edad y sexo. Por ejemplo, para la entrada
“Pepe 20 v” el contenido de nombre será “Pepe”, edad contendrá 20 y sexo ‘v’.


 tengo echo esto:

Código:
#include<iostream>

#define Return='\n'

using namespace std;

typedef TCad [30];

typedef struct{
  TCad nombre;
  unsigned edad;
  char sexo;
}TPersona;

int main(){
  TCad cad,cadaux;
  TPersona pers;  
  char c;
  int i=0;
  cout<< "introducir en una linea nombre edad sexo: ";
  cin.get(c);
  while(c!=Return){
    cad[i]=c;
    i++;
    cin.get(c);
  }
  //cin.getline(cad,30);
 //a partir de aqui no se que hacer....!!!!!!!!!!!
  //for(int j=0; j<i ;j++){
    //while(cad[j]!='\n'){
      
      //if(cad[j]!='\0'){
        
      //}
    //}
  //}
}


llego a leer la cadena pero no se como separarla para meterlas en la variable TPersona.... alguna ideaa??Gracias.
3  Programación / Programación C/C++ / getline() !!! en: 13 Septiembre 2014, 16:40 pm
HOLA, miren tengo un problema con esta programa en el getline() este al introducirle mas de un caracter me mete en un bucle he probado a introducirle un cin.ignore o un cin.get() pero nada sigue teniendo problemas el getline(), alguien que sepa su funcionamiento y me explique que le pasa, Gracias:) :-\ :-\


Código:
/*Se necesita un programa para gestión de una agencia matrimonial. Por cada cliente se
almacenarán los siguientes datos: nombre, edad, sexo (M,F), aficiones (Lectura,
Viajes, Deportes, Cine, Gastronomía, Ordenadores,
JuegosDeRol, Modelismo,Perros). Una persona puede tener ninguna, uno o
más aficiones. Implementar los subalgoritmos que permitan (definir previamente el tipo
de datos adecuado para almacenar esta información):
a) Introducir en la estructura los datos de una persona
b) Buscar una persona (por el nombre)
c) Dar de baja una persona (eliminar sus datos, se localiza por el nombre)
d) Casar. Dado el nombre de una persona, se busca una afín a ella, se presentan
por pantalla sus datos y se eliminan los dos de la base de datos. Una persona
será afín a otra (a efectos de Casar) si coinciden todas sus aficiones.*/

#include<iostream>
#include<string>

using namespace std;

typedef int listaficiones[3];

typedef struct{
  string nombre;
  unsigned edad;
  char sexo;
  listaficiones aficiones;
}cliente;

typedef cliente NClientes[100];

typedef struct {
    unsigned numero_de_clientes;
    NClientes NC;
}TListaClientes;

void inicializar_registro(TListaClientes &);
void menu();
void registrar(TListaClientes &);
bool buscar(string , int&,TListaClientes);
void mostrar(int , TListaClientes);
bool casar(string , TListaClientes &);
bool borrar(string, TListaClientes &);
bool afic_iguales(int, int&, TListaClientes);
void mosafi(int ,int,TListaClientes );

int main(){
    TListaClientes lista;
    string n;
    char c='\n';
    int nr;
    inicializar_registro(lista);
    menu();
    while(c!='E'){
    cin>>c;
    //toupper(c);
    switch(toupper(c)){
      case 'A' :
          registrar(lista);
          cout<<"Persona registrada."<<endl;
          break;
      case 'B' :
          cout<<"Nombre buscado: ";
          getline(cin, n);
          buscar(n,nr,lista);
          mostrar(nr,lista);
          break;
      case 'C' :
        cout<<"Nombre del cliente que desea borrar: ";
        getline(cin, n);
        if (borrar(n,lista)){
            cout<<endl<< "cliente borrardo."<<endl;
        }
        else cout<<"cliente no existe!!"<<endl;
      break;
      case 'D' : cout<<"Nombre del cliente que desea casar: ";
      getline(cin, n);
      if(casar(n,lista)) cout<<"operacion realizada"<<endl;
      else cout<<"afin no encontrado.";
     }
    }
}

void inicializar_registro(TListaClientes &lis){
  lis.numero_de_clientes=0;
}

void menu(){
  cout<<"A.Registrar persona."
  <<endl<<"B.Buscar persona por nombre."
  <<endl<<"C.Eliminar una persona."
  <<endl<<"D.Casar. Hay que dar un nombre."
  <<endl<<"E.Salir."<<endl;

}
void registrar(TListaClientes &l){
        int sexo;
        cout<<"Este es el registro numero"<<l.numero_de_clientes+1<<endl;
        cout<<"NOMBRE: ";
        getline(cin,l.NC[l.numero_de_clientes].nombre);
        //cin.ignore();
        //cin.get();
        cout<<"Sexo, 1.(masculino) 2.(femenino): ";
        cin>>sexo;
        if(sexo==1){
        l.NC[l.numero_de_clientes].sexo='M';
        }
        else l.NC[l.numero_de_clientes].sexo='F';
        cout<<"Edad: ";
        cin>>l.NC[l.numero_de_clientes].edad;
        cout<<"Elige 3 aficiones: "<<endl<<" 1.Lectura "<<endl<<" 2.Viajes "<<endl<<" 3.Deportes "<<endl<<" 4.Cine "<<endl<<" 5.Gastronomía "<<endl<<" 6.Ordenadores "<<endl<<" 7.JuegosDeRol "<<endl<<" 8.Modelismo "<<endl<<" 9.Perros "<<endl;
        for(int j=0; j<3 ;j++){
            cin>>l.NC[l.numero_de_clientes].aficiones[j];
        }
        l.numero_de_clientes++;

}
bool buscar(string nomb,int& i,TListaClientes lista){
   bool a=false;
   for(int j=0;j<lista.numero_de_clientes;j++){
    if(nomb==lista.NC[j].nombre){
        a=true;
        i=j;
    }
   }
   return a;
}
void mostrar(int s,TListaClientes l){
    cout<<endl<<"Nombre: "<<l.NC[s].nombre;
    cout<<endl<<"Sexo: "<<l.NC[s].sexo;
    cout<<endl<<"Edad: "<<l.NC[s].edad;
    cout<<endl<<"Aficiones: "<<endl;
    for(int i=0; i<3; i++){
        mosafi(i,s,l);
    }
}
void mosafi(int af,int s,TListaClientes lista){
    switch(lista.NC[s].aficiones[af]){
      case 1: cout<<"Lectura"<<endl;
      break;
      case 2: cout<<"Viajes"<<endl;
      break;
      case 3: cout<<"Deportes"<<endl;
      break;
      case 4: cout<<"Cine"<<endl;
      break;
      case 5: cout<<"Gastronomía"<<endl;
      break;
      case 6: cout<<"Ordenadores"<<endl;
      break;
      case 7: cout<<"JuegosDeRol"<<endl;
      break;
      case 8: cout<<"Modelismo"<<endl;
      break;
      case 9: cout<<"Perros"<<endl;
    }
}
bool borrar(string n,TListaClientes &l){
    int i;
    bool a;
    a=buscar(n,i,l);
    if(a){
        for(int j=i; j<l.numero_de_clientes ; j++){
            l.NC[j]=l.NC[j+1];
        }
        l.numero_de_clientes--;
    }
    return a;
}
bool casar(string n,TListaClientes &lista){
    bool a,b;
    int i,j,parej;

    a=buscar(n,i,lista);
    if (a){
       a=false;
       for(j=0; j<lista.numero_de_clientes || a==false ; j++){
        if (lista.NC[j].nombre!=n){
          if(afic_iguales(i,j,lista)) parej=j;a=true ;
        }
       }
    }
  return a;
 }
bool afic_iguales(int i, int &j, TListaClientes l){
   bool b=true;
   for(int k=0; k<3 ;k++){
    for(int y=0; y<3 && b==true; y++){
        if(l.NC[i].aficiones[k]!=l.NC[j].aficiones[y]) {
            b=false;
        }
    }
   }
   return b;
}
4  Programación / Programación C/C++ / fallo al introducir datos!! en: 20 Agosto 2014, 00:26 am
Hola tengo un problemiya al leer los datos, pongo el nombre y se acaba el programa porque pasa esto?? y otra cosa, el getline es como se introduce una cadena en el string?? GRACIASSS:)

Código:
/*3-Una farmacia desea almacenar sus productos en una estructura. De cada producto hay
que almacenar la siguiente información: código, nombre, descripción (cadena de
caracteres), laboratorio, proveedor, precio y fecha de caducidad. Diseñar la estructura de
datos y un procedimiento que permita introducir los datos de un medicamento en esa
estructura.*/

#include <iostream>

using namespace std;

typedef struct{

unsigned codigo;
char nombre;
string descripcion;
char laboratorio;
char proveedor;
unsigned precio;
unsigned fechacaducidad;

}producto;

typedef producto P[20];

int main(){
 P p;
 cout<<"introduce el producto: "<<endl;
 cout<<"NOMBRE: ";
 cin>>p[0].nombre;
 cout<<endl<<"CODIGO: ";
 cin>>p[0].codigo;
 cout<<endl<<"PRECIO: ";
 cin>>p[0].precio;
 cout<<endl<<"DESCRIPCION: ";
 getline(cin,p[0].descripcion);
 cout<<endl<<"LABORATORIO: ";
 cin>>p[0].laboratorio;
 cout<<endl<<"PROVEEDOR: ";
 cin>>p[0].proveedor;
 cout<<endl<<"FECHA DE CADUCIDAD(INTRODUCIR DIAMESAÑO): ";
 cin>>p[0].fechacaducidad;

}
5  Programación / Programación C/C++ / Devolver el menor de un array en: 10 Agosto 2014, 13:55 pm
El programa me compila perfectamente, pero al introducirle los números se para no hace nada y no encuentro el error, podrían ayudarme por favor:(

Hacer un subalgoritmo que reciba un array de N números enteros y devuelva el valor mínimo de todos.

Código:
#include <iostream>
using namespace std;

const unsigned MAX=20; //el array va de 0 a 19 k son los 20 cuadraditos

typedef int nument[MAX];

int minimo(nument);

int main(){
 //habia que inicalizar el array?¿
 nument num;
 int nu;
 cout<<" Cuentos numero vas a introducir: ";
 cin>>nu;
 cout<<"introduce una secuencia de numeros enteros: ";

 for(int i=0;i<nu;i++){
   cin>>num[i];
 }
 num[nu]=' ';
 cout<<"El numero mas pequeño es "<<minimo(num)<<endl;

 return 0;
}

int minimo(nument Array){
 int aux1,aux2;
 for(int i=0; i<MAX-1; i++){
  while(Array[i+1]!=' '){
    if(Array[i]>=Array[i+1]){
      aux1=Array[i];
      aux2=Array[i+1];
      Array[i+1]=aux1;
      Array[i]=aux2;
   }
  }
 }
 return aux2;
}
6  Programación / Programación C/C++ / Multiplicacion de matrices Anxk y Bkxm en: 7 Agosto 2014, 14:40 pm
Tengo un pequeño problema al almacenar la matriz o al calcular el resultado en el subalgoritmo MulMatrizAB(...), podrian ayudarme ha encontrar el problema?? Graciass  :D
El enunciado decia lo siguiente:
Hacer un subalgoritmo que calcule el producto de dos matrices ANxK x B KxM, y lo
almacene en una matriz CNxM.
Aqui les dejo mi codigo:

Código:
#include<iostream>

using namespace std;

const int N=2;
const int M=3;
const int K=2;

typedef int MatrizA[N][K];
typedef int MatrizB[K][M];
typedef int MatrizC[N][M];

void mostarResul(MatrizC );
void MulMatrizAB(MatrizA ,MatrizB ,MatrizC &);


int main(){
 MatrizA A;
 MatrizB B;
 MatrizC C;

 cout<<"Introduce una matriz A 2x2, por filas " ;
 for(int i=0;i<N;i++){
   for(int j=0;j<K; j++){
     cin>>A[i][j];
   }
 }
 cout<<"introduce una matriz B 2x3, por filas " ;
 for(int i=0;i<K;i++){
   for(int j=0;j<M; j++){
     cin>>B[i][j];
     C[i][j]=0;
   }
 }
 MulMatrizAB(A,B,C);
 mostarResul(C);
}
void MulMatrizAB(MatrizA a,MatrizB b,MatrizC &c){
   int z=0;
   for(int i=0 ; i<N ; i++){
     for(int j=0 ; j<M ; j++){
       for(int h=0 ; h<K ; h++){
         z=(a[i][h]*b[h][j])+z;
         if(h==1){
          c[j][i]=z;
          z=0;
         }
       }
     }
   }
}
void mostarResul(MatrizC c){
 for(int i=0; i<N ; i++){
   for(int j=0; j<M ;j++){
    cout<<c[i][j]<<"  ";
   }
   cout<<endl;
 }
}
7  Programación / Programación C/C++ / TAB CLista de template en: 10 Junio 2014, 14:02 pm
Buenas el problema que tengo es que no se como usar el template en el cpp del hpp en este programita:

Código:
#include <iostream>
#include <string>
#include "TLista.hpp"
using namespace std;
using namespace bblLista;

int main()
{
    char tipo;
    CLista<tipo> a;
    unsigned nnodos;
    char car;
    unsigned num;

    cout<<"MENU:"<<endl<<"1.INSERTAR NODOS"<<endl<<"2.ELIMINAR NODO"<<endl<<"3.ESCRIBIR LISTA"<<endl<<"4.BORRAR LISTA"<<endl;
    cin>>num;
    switch(num){
        case 1:
          cout<<"Cuantos nodos desea insertar? ";
          cin>>nnodos;
          for(unsigned i=0;i<=nnodos; i++){
          cout<<"Introduce el caracter: ";
          cin>>car;
          insertar(a,car);
          }
        break;
        case 2:
          cout<<"Escriba el caracter del nodo que desea eliminar: ";
          cin>>car;
          eliminar(a,car);
        break;
        case 3:
           consultarlista(a);
        break;
        case 4:
           borrarlista(a);
        break;
    }


}

el CLista.hpp

Código:
#ifndef _TLISTA_HPP_
#define _TLISTA_HPP_

#include <iostream>
#include <cstdlib>

using namespace std;

namespace bblLista{
  const unsigned int MAX_LISTA = 100; // Máximo tamaño de la lista

  template <typename tipo>
  class CLista{
    public:
       CLista();
       void insertar(CLista &lista, const char car);
       void eliminar(CLista &lista,const char car);
       void consultarlista(CLista &lista);
       void borrarlista(CLista &lista);
    private:

      struct TpNodo{
         tipo car;
         TpNodo *sig;
      };
      typedef TpNodo *puntalista;
      puntalista lista;
      unsigned longitud;
      //metodos pribados
      void insertaralprincipio(CLista &lista, const char car);
      void insertaralfinal(CLista &lista, const char car);
  }; // Fin de CLista
} // Fin de bblLista

#endif

y aqui es donde tengo el problemaa:

Código:
#include "CLista.hpp"
#include <iostream>
#include <cstdlib>
using namespace std;
using namespace bblLista;
  template <typename tipo>
  CLista<tipo>::CLista(): longitud(0) {};

  template <typename tipo>
  void CLista<tipo>::insertaralprincipio(CLista lista, const tipo car){
      TpNodo pun;//puntero auxiliar

      pun=new TpNodo;
      pun->car=car;
      pun->sig=lista;//recuerda que esetamos insertando al principio
      lista=pun;//lista señalaba a otro nodoya creado.
  }

  template <typename tipo>
  void CLista<tipo>::insertaralfinal(CLista &lista, const tipo car){
      TpNodo pun;
      pun=lista;
      while(pun->sig != NULL){
        pun=pun->sig;
      }
      pun->sig=new TpNodo;
      pun=pun->sig;
      pun->car=car;
      pun->sig=NULL;

      }



  template <typename tipo>
  void CLista<tipo>::insertar(CLista &lista, const tipo car){
      if(lista !=NULL){
        insertaralfinal(lista,car);
      }
      else insertaralprincipio(lista,car);
      ++longitud;
  }
  void CLista<tipo>::eliminar(CLista &lista,const tipo car){
      TpNodo pun,aux;
      pun=lista;
      while(pun->car!=car || pun->sig !=NULL){
        aux=pun;
        pun=pun->sig;
      }
      if(pun->sig==NULL){
        aux->sig=NULL;
        delete pun;
      }
      else {
        aux->sig=pun->sig;
        delete pun;
      }
     --longitud;
}

template <typename tipo>
void CLista<tipo>::consultarlista(CLista &lista){
      TpNodo pun;
      pun=lista;
      for(unsigned i=0; i<= longitud; i++){
        cin<<pun->car;
        pun=pun->sig;
      }
}

template <typename tipo>
void CLista<tipo>::borrarlista(CLista &lista){
    TpNodo aux;
  while(lista !=NULL){
    aux=lista;
    lista=lista->sig;
    delete aux;
  }
}
8  Programación / Programación C/C++ / TAB de OPERACIONES CON RACIONALES en: 9 Junio 2014, 15:45 pm
Código:
#include<iostream>
#include<fstream>
#include<string>
#include "CRacional.hpp"

using namespace std;
using namespace racionales;
void menu(){
cout<<"1.INSERTAR RACIONALES"<<endl;
cout<<"2.CONSULTAR EL VALOR DEL NUMERADOR"<<endl;
cout<<"3.CONSULTAR EL VALOR DEL DENOMINADOR"<<endl;
cout<<"4.MOVER LOS RACIONALES AL FICHERO"<<endl;
cout<<"5.SUMAR "<<endl;
cout<<"6.RESTAR "<<endl;
cout<<"7.MULTIPLICAR"<<endl;
cout<<"8.DIVIDIR "<<endl;
cout<<"10.SALIR"<<endl;
cout<<"que desea hacer?"<<endl;

};
int main(){

CRacional rr1,rr2,c;

int e,d;
int num1,num2;
string nombrecarpeta;
ofstream sal;
int f;
menu();
while(f!=10){
  cin>>f;
switch(f){
case 1:
    cout<<"Inserte el numerador : ";
      cin>>e;
      cout<<endl<<"Inserte el denominador : ";
      cin>>d;
       while(d==0){
         cin.ignore();
         cout<<"no vale 0, inserte otro numero:";
         cin>>d;
         }
      rr1.leerracionales(e,d);
      cout<<"ahora el segundo racional; "<<endl;
      cout<<"Inserte el numerador : ";
          cin>>e;
          cout<<endl<<"Inserte el denominador : ";
          cin>>d;
          while(d==0){
          cin.ignore();
          cout<<"no vale 0, inserte otro numero:";
          cin>>d;
         }
         rr2.leerracionales(e,d);
         menu();
   break;
case 2:

    cout<<"Racional 1: "<< rr1.obtnumerador();

    cout<<endl<<"Racional 2: "<< rr2.obtnumerador();

    cout<<endl;
   break;
case 3:

    cout<<"Racional 1: "<<rr1.obtdenominador();

    cout<<endl<<"Racional 2: "<<rr2.obtdenominador();

    cout<<endl;

   break;
case 4:
          cout<<"nombre de la carpeta donde desea guardar el racional 1 y 2: ";
          cin>> nombrecarpeta;
          sal.open(nombrecarpeta.c_str());
          if(sal.fail()){
                cout<<"error fichero";
          }
          else {
            sal<<"racional 1: ";
            rr1.volcar_a_fichero(sal);
            sal<<"racional 2: ";
            rr2.volcar_a_fichero(sal);
          }
          sal.close();
          break;

case 5:   c.suma(rr1,rr2);
          c.mostrar();
          cout<<"nombre de la carpeta donde desea guardar el racional: ";
          cin>> nombrecarpeta;
          sal.open(nombrecarpeta.c_str());
          if(sal.fail()){
                cout<<"error fichero";
          }
          else {
             sal<<"suma: ";
            c.volcar_a_fichero(sal);
          }
          sal.close();
        break;
case 6:   c.resta(rr1,rr2);
          cout<<c.obtnumerador() << "/"<< c.obtdenominador()<<endl;
          cout<<"nombre de la carpeta donde desea guardar el racional: ";
          cin>> nombrecarpeta;
          sal.open(nombrecarpeta.c_str());
          if(sal.fail()){
                cout<<"error fichero";
          }
          else {
            sal<<"resta: ";
            c.volcar_a_fichero(sal);
          }
          sal.close();
        break;
case 7:   c.multiplicar(rr1,rr2);
          cout<<c.obtnumerador() << "/"<< c.obtdenominador()<<endl;
          cout<<"nombre de la carpeta donde desea guardar el racional: ";
          cin>> nombrecarpeta;
          sal.open(nombrecarpeta.c_str());
          if(sal.fail()){
                cout<<"error fichero";
          }
          else {
            sal<<"multiplicacion: ";
            c.volcar_a_fichero(sal);
          }
          sal.close();
        break;
case 8:   c.dividir(rr1,rr2);
          cout<<c.obtnumerador() << "/"<< c.obtdenominador()<<endl;
          cout<<"nombre de la carpeta donde desea guardar el racional: ";
          cin>> nombrecarpeta;
          sal.open(nombrecarpeta.c_str());
          if(sal.fail()){
                cout<<"error fichero";
          }
          else {
            sal<<"division: ";
            c.volcar_a_fichero(sal);
          }
          sal.close();
        break;




}
cin.ignore();
}
}
c es el racional el cual guarda el resultado pero este no se guarda;
Código:
#ifndef __CRACIONAL__HPP__
#define __CRACIONAL__HPP__

#include <fstream>
#include <string>

using namespace std;

namespace racionales{
    //constantes
class CRacional{
   public:
       //costructor por defecto
       CRacional();
       //costructor de copia
       CRacional (const CRacional &otroracional);
       //costructor extendido,leer
       CRacional (int &e, int &d);
       //destructor
       ~CRacional();
       //leer
       void leerracionales(int &e,int &d);
       //consultar denominador y numerador
       int obtnumerador();
       int obtdenominador();
       void mostrar();
       //escribir en pantalla
       void volcar_a_fichero(ofstream &sal);
       //suma
       CRacional suma(CRacional rr1,CRacional rr2);
       //resta
       CRacional resta(CRacional rr1,CRacional rr2);
       //multiplicacion
       CRacional multiplicar(CRacional rr1,CRacional rr2);
       //dividir
       CRacional dividir(CRacional rr1,CRacional rr2);


   private:

       int a;
       int b;
       void mismodenominador(CRacional &ra,CRacional &ra2);
       void simplificar();
       int mcd (int a, int b);
};
}
#endif
Código:
#include <iostream>
#include "CRacional.hpp"
#include<fstream>
using namespace std;

namespace racionales{
      //constructores
      CRacional::CRacional(): a(0),b(0){}
      CRacional::CRacional (const CRacional &otroracional): a(otroracional.a),b(otroracional.b){};
      CRacional::CRacional (int &a, int &b): a(a),b(b){};
      CRacional::~CRacional(){};
      //metodos
      void CRacional::leerracionales(int &e,int &d){
      a=e;
      b=d;
      }
      int CRacional::obtnumerador(){
      return a;
      }
      int CRacional::obtdenominador(){
      return b;
      }
      void CRacional::mostrar(){
       cout<<a<<"/"<<b<<endl;
      }
      void CRacional::volcar_a_fichero(ofstream &sal){
        sal<<a<<"/"<<b<<endl;
      }
      void CRacional::mismodenominador(CRacional &ra,CRacional &ra2){
          if(ra.b!=ra2.b){
          CRacional aux1=ra,aux2=ra2;
          aux1.b=aux1.b*aux2.b;
          aux2.b=aux1.b;
          aux1.a=ra.a*ra2.b;
          aux2.a=ra.b*ra2.a;
          ra=aux1;
          ra2=aux2;
          }
      }
      int CRacional::mcd (int a, int b){
          int resul=1;
          if(a<0){
            a=a*(-1);
          }
          if(b<0){
            b=b*(-1);
          }
          if(a<b){
            int c;
            c=a;
            a=b;
            b=c;
          }
          for(int i=2;i<=b;i++){
              if((a%i)==0 && (b%i)==0){
                resul=i;
              }
          }
          return resul;
      }
       void CRacional::simplificar(){
          CRacional rresul;
          int mccd=mcd(a,b);
          a=a/mccd;
          b=b/mccd;
       }
      CRacional CRacional::suma(CRacional rr1,CRacional rr2){
          CRacional c;
          mismodenominador(rr1,rr2);
          c.a=rr1.a+rr2.a;
          c.b=rr1.b;
          c.simplificar();
          cout<<"muesta desde suma: "<<c.a<<"/"<<c.b<<endl; //sale bn
          return c;
      }
      CRacional CRacional::resta(CRacional rr1,CRacional rr2){
          CRacional c;
          mismodenominador(rr1,rr2);
          c.a=rr1.a-rr2.a;
          c.b=rr1.b;
          c.simplificar();
          return c;
      }
      CRacional CRacional::multiplicar(CRacional rr1,CRacional rr2){
          CRacional c;
          c.a=rr1.a*rr2.a;
          c.b=rr1.b*rr2.b;
          c.simplificar();
          return c;
      }
      CRacional CRacional::dividir(CRacional rr1,CRacional rr2){
          CRacional c;
          c.a=rr1.b*rr2.a;
          c.b=rr1.a*rr2.b;
          c.simplificar();
          return c;
      }

}

me podrían decir que problema hay en c.mostrar??
9  Programación / Programación C/C++ / CONTENEDORES STL vector en: 7 Junio 2014, 01:43 am
Hola tengo una duda sobre como acceder a el nombre de esta estructura:
       
        typedef struct habitacion{
         string nombre;
        };
        typedef vector<habitacion> habitaciones;
        vector<habitaciones> planta;

Esta declarado dentro de una clase privada, pero al intentar incluir un nombre..
planta [hab][pla]=nombre;
me sale un error, como puedo entonces acceder a nombre?
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines