Dev - C++ - AYUDA CON ESTE CODIGO, PROBLEMA CON LA MATRIZ

 
Vista:
sin imagen de perfil
Val: 11
Ha aumentado su posición en 2 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

AYUDA CON ESTE CODIGO, PROBLEMA CON LA MATRIZ

Publicado por Jairol (3 intervenciones) el 04/12/2020 20:40:57
//EL PROGRAMA ES PARA DEVOLVER UNA "X" CANTIDAD DE MONEDAS({2,3,5,10}) EN PROGAMACION DINAMICA
//MI PROBLEMA ES AL QUERER CREAR LA MATRIZ EN LA FUNCION CAMBIO,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <conio.h>
using namespace std;
#define MAX 100
 
int min(int a, int b);
void cambio(int moneda[],int cambio);
int main(int argc, char *argv[]) {
	int monedas[]={2,3,5,10};
	int c;
	cout<<" cant: ";cin>>c;
	cambio(monedas,c);
	return 0;
}
int min(int a, int b){
	if(a<b)
		return a;
	return b;
}
 
void cambio(int moneda[],int cambio){
	int matriz[4][cambio+1];
 
	for(int i=0;i<4;i++){
		matriz[i][0]=0;
	}
	for(int j=1;j<=cambio;j++){
		matriz[0][j]=10000;
	}
	for(int i=1;i<=3;i++){
		for(int j=1;j<=cambio;j++){
			if(j<moneda[i-1]){
				matriz[i][j]=matriz[i-1][j];
			}
			else{
				int minimo=0;
				minimo=min(matriz[1-1][j],matriz[i][j-moneda[i-1]]+1);
				matriz[i][j]=minimo;
			}
		}
	}
	//selecion de monedas;
	int k, seleccion[4];//conteo de billetes
	k=4;
	for (k=0;k<4;k++){
		seleccion[k]=0;
	}
 
	while(cambio>0){
		if(k>1 && matriz[k][p]==matriz[k-1][cambio]){
			k--;
		}
		else{
			seleccion[k-1]++;
			cambio=cambio-moneda[k-1];
		}
	}
	int i=0;
	while(i<4){
		cout<<seleccion[i]<<endl;
		i++;
	}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

AYUDA CON ESTE CODIGO, PROBLEMA CON LA MATRIZ

Publicado por Alfil (1444 intervenciones) el 04/12/2020 22:29:44
¿Puedes poner el enunciado del problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 2 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

AYUDA CON ESTE CODIGO, PROBLEMA CON LA MATRIZ

Publicado por Jairol (3 intervenciones) el 04/12/2020 22:54:22
Quiero devolver un cambio(vuelto de una compra) que ingresará el usuario utilizando el menor número de monedas, utilizando programación dinamica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

AYUDA CON ESTE CODIGO, PROBLEMA CON LA MATRIZ

Publicado por Alfil (1444 intervenciones) el 05/12/2020 00:00:17
¿Qué monedas y billetas hay y que cantidad de cada uno?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 2 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

AYUDA CON ESTE CODIGO, PROBLEMA CON LA MATRIZ

Publicado por Jairol (3 intervenciones) el 05/12/2020 00:58:53
las monedas ya estan dadas en el main son esas monedas[]={2,3,5,10}, la cantidad es infinita
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

AYUDA CON ESTE CODIGO, PROBLEMA CON LA MATRIZ

Publicado por Alfil (1444 intervenciones) el 05/12/2020 06:48:39
int monedas[] almacena el valor de las monedas que se devuelven, int cambio[] la cantidad de esas monedas en la misma posición. Hay que tener en cuenta que, al no haber monedas de 1, si entregamos 21, nos devolverán 20, aunque tampoco tiene mucho sentido entregar 1 para que te cambien.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
 
using namespace std;
 
int cambiaMonedas(int cantidad, int moneda);
 
int main()
{
    int cantidad;
    int monedas[] = {10, 5, 3, 2};
    int cambio[4] = {0};
 
    cout << "\nCantidad: "; cin >> cantidad;
 
    for (int i = 0; i < 4; i++)
    {
        if (cantidad >= monedas[i])
        {
            cambio[i] = cambiaMonedas(cantidad, monedas[i]);
            cantidad -= cambio[i] * monedas[i];
        }
    }
 
    cout << "\nCambio recibido: " << endl;
    for (int i = 0; i < 4; i++)
    {
        if (cambio[i] > 0)
        {
            cout << "Monedas de " << monedas[i] << ": "
                 << cambio[i] << endl;
        }
    }
 
    return 0;
}
 
int cambiaMonedas(int cantidad, int moneda)
{
    int numero = 0;
 
    while (cantidad >= moneda)
    {
        cantidad -= moneda;
        numero++;
    }
 
    return numero;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

AYUDA CON ESTE CODIGO, PROBLEMA CON LA MATRIZ

Publicado por Alfil (1444 intervenciones) el 05/12/2020 08:06:58
Se podría añadir en la línea 46 para que te devuelva tu propia moneda de 1:

1
2
if (cantidad > 0)
	cout << "Monedas de 1: " << cantidad << endl;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar