Dev - C++ - Ayuda matrices

   
Vista:

Ayuda matrices

Publicado por Carlitos (2 intervenciones) el 10/06/2017 01:56:48
Tengo este codigo todo funcona bien excepto porque cuando intento llenar la matriz cuon un valor tipo float se me cierra el prgrama de repente, no se si pueden ver un error que yo no logro ver, ayuda

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <sstream>
 
using namespace std;
 
const int tam=6;
class Coleccion {
private:
	float matriz[tam][tam];
public:
	Coleccion() {
		for(int i=0; i<tam; i++)
			for(int j=0; j<tam; j++)
			matriz[i][j]=0;
	}
	Coleccion(int a) {
		for(int i=0; i<tam; i++)
			for(int j=0; j<tam; j++)
			matriz[i][j]=a;
	}
	void setPos(int i, int j, int val){
		matriz[i][j]=val;
	}
	int getPos(int i, int j) {
		return matriz[i][j];
	}
	void llenar() {
		int valor;
		for(int i=0; i<tam; i++)
			for(int j=0; j<tam; j++){
			cout<<"Valor["<<i<<"]["<<j<<"]: ";
 
			cin>>valor;
			setPos(i,j,valor);
		}
	}
	~Coleccion() {}
 
	string toString() {
		stringstream s;
		for (int i = 0; i< tam;i++){
			for (int j = 0; j< tam;j++)
				s<<matriz[i][j]<<" ";
				s<<endl;
		}
		s<<endl;
		return s.str();
	}
 
	float costoRD(int a, int b) {
		return matriz[a][b];
};
 
int main() {
	int a;
	int b;
 
	Coleccion mat1;
 
	cout<<"Ingrese los valores"<<endl;
	mat1.llenar();
	cout<<endl;
	cout<<mat1.toString();
 
	cout<<endl;
 
	cout<<"Las ciudades son 0, 1, 2, 3, 4, 5 y 6"<<endl;
	cout<<endl;
 
	cout<<"Rutas directas"<<endl;
	cout<<"Ingrese la ciudad de partida"<<endl;
	cin>>a;
	cout<<"Ingrese la ciudad de llegada"<<endl;
	cin>>b;
	cout<<"El costo del viaje es:"<<endl;
	cout<<mat1.costoRutaDirecta(a,b)<<endl;
 
}
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 Dionicio

Ayuda matrices

Publicado por Dionicio (30 intervenciones) el 10/06/2017 03:41:22
Y como no va a fallarte si en el método llenar(); el valor que lees es un entero; en el método setPos(); el valor que pasas como parámetro también es un entero en donde en esos lugares debería ir un tipo float que es el tipo de dato de la matriz.
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