/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Problema de vueltos

 
      Índice del Foro elrincondelc.com -> Algoritmos
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
pointer



Registrado: 02 Abr 2005
Mensajes: 29

MensajePublicado: 26/11/2005 5:50 pm
Título: Problema de vueltos

Primero aclarar que no es un trabajo de clase, pero tengo un problema.
Código:

#include <iostream>
using namespace std;

int min(int,int);

int main(int argc, char* argv[]) {
    int* moneda; // Monedas disponibles
    int** tabla; // Tabla, matriz
    int i,j;
   
    cout << "Cantidad de monedas diferentes a poder utilizar: ";
    int cant = 0;
    cin >> cant;
    if(cant<1) exit(0);
    moneda = new int[cant];
    if(!moneda) exit(0);
    cout << "Ingrese las monedas de menor a mayor" << endl;
    for(i=0; i < cant; i++) { // Ingreso valores de monedas
             cout << "Ingrese el valor de la " << i+1 <<"a moneda: ";
             cin  >> moneda[i];
             if(moneda[i]<1) exit(0);
             }
    cout << "Ingrese la cantidad de $ a calcular: ";
    cin  >> cant;
    if(cant<1) exit(0);
    tabla = new int *[sizeof(moneda)/4];
    for(i=0; i<(sizeof(moneda)/4); i++)
             tabla[i] = new int[cant];
    // Llenamos valores obvios
    for(i=0; i<(sizeof(moneda)/4); i++)
             tabla[i][0] = 0;
   
    // Llenamos la tabla
    for(i=0; i<(sizeof(moneda)/4); i++) {
             for(j=0; j<cant; j++) {
                 if(i==0) if(j<moneda[0]) *tabla[0,j] = 0; // No se puede
                                else tabla[i,j] = 1+(tabla[i,(j-moneda[i])]);
                 else if(j<moneda[i]) tabla[i,j] = tabla[i-1,j];
                 else tabla[i,j] = min(*tabla[i-1,j], tabla[i,j-moneda[i]]);
                 }
             }               
    cout << endl << endl << "   |";
    for(j=0; j<cant+1; j++)
             cout << j << "|";
    cout << endl;
    for(i=0; i<(sizeof(moneda)/4); i++) {
             cout << moneda[i] << "- ";
             for(j=0; j<cant; j++) {
                      cout << "|" << tabla[i,j];
                      }
             cout << endl;
             }
                     
    fflush(stdout); fflush(stdin);
    cin.get();
    return 0;
    }


Supongo que se dan cuenta que se trata de un programita que hice que hace las famosas tablas para resolver la cantidad minima de monedas para llegar a un valor.
El tema es que: 1) No se si esta bien pensado (no pido eso, pero si quieren...)
2) No se por que me imprime los valores en hexadecimal. ¿?

Si alguien me da una mano, les agradezco como siempre. Smile

Saludos
Volver arriba
leonardy



Registrado: 24 Feb 2005
Mensajes: 220
Ubicación: Chiapas

MensajePublicado: 26/11/2005 5:58 pm
Título:

no es porna lo copiaste o habriste el archivo.cpp

si es el segundo

#include<iostream.h>


Cita:

cout << "|" << tabla[i,j];


no deberia ser tabla[i][j];

suerte Wink
_________________
http://www.neopets.com/refer.phtml?username=corsairblack
no hay IGNORANCIA que aguante 4 horas de estudio diario(Obtavio Garcia Narcia)
Volver arriba
Yahoo Messenger
pointer



Registrado: 02 Abr 2005
Mensajes: 29

MensajePublicado: 26/11/2005 6:20 pm
Título:

Gracias, lo voy a verificar; eso es producto de 5 horas intensas de programar; en lo mas simple me equivoco.

Saludos!
Volver arriba
      Índice del Foro elrincondelc.com -> Algoritmos
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com