Dev - C++ - Ayuda con tablas de multiplicar C++

 
Vista:

Ayuda con tablas de multiplicar C++

Publicado por Woxtz (1 intervención) el 03/11/2017 13:03:38
Hola, necesito ayuda con este problema:

Diseñe la siguiente clase para mostrar varias tablas a la vez de manera horizontal
class TablasMultiplicar{

int TablaIni, TablaFin;

public:

void PedirNoTablas(); /*Método para solicitar por teclado el número de la tabla de
multiplicar inicial y final a ser mostradas. Si el valor introducido en ambos atributos */

void MostrarTablas(); /*es menor que uno o mayor que 10, el método volverá a
solicitar ambos números de tabla.
En el caso que el valor de TablaIni sea menor que TablaFin, el método deberá
intercambiarlos*/

};



Yo he conseguido que me lo muestre así pero solo si son dos tablas consecutivas, si pongo mas de dos tablas pues se desordena. Es decir si pongo que me haga la tabla del 1 y la del 2 me las hace bien, pero si pongo que me haga de la tabla del 1 hasta la tabla del 3, se desordena.




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
79
80
#include <iostream>
 
/*Ejemplo de como debe verse:
5 x 0 = 0                6 x 0 = 0                       7 x 0 = 0 
5 x 1 = 5                6 x 1 = 6                       7 x 1 = 7
5 x 2 = 10             6 x 2 = 12                     7 x 2 = 14 
5 x 3 = 15             6 x 3 = 18                     7 x 3 = 21 
.............................................................................
5 x 10 = 50           6 x 10 = 60            7 x 10 = 70 */
 
using namespace std;
 
 
class TablasMultiplicar{
 
int TablaIni, TablaFin;
 
public:
 
void PedirNoTablas();  /*Método para solicitar por teclado el número de la tabla de
                       multiplicar inicial y final a ser mostradas. Si el valor introducido en ambos atributos */
 
void MostrarTablas();  /*es menor que uno o mayor que 10, el método volverá a
                        solicitar ambos números de tabla.
                        En el caso que el valor de TablaIni sea menor que TablaFin, el método deberá
                        intercambiarlos*/
 
};
 
 
 
void TablasMultiplicar::PedirNoTablas(){
 
do{
 
cout<<"Introduzca el numero de la tabla de multiplicar inicial: ";cin>>TablaIni;
cout<<"\nIntroduzca el numero de la tabla de multiplicar final: ";cin>>TablaFin;
 
}while(((TablaIni <1 || TablaIni>10)||(TablaFin < 1 || TablaFin >10 )));
 
}
 
 
 
void TablasMultiplicar::MostrarTablas(){
 
 
for(int i=0;i<=10;i++){
 
cout<<TablaIni<<" x "<<i<<" = "<<TablaIni*i<<"\t";
 
 
 
    for(int j=(TablaIni+1);j<=TablaFin;j++){
 
 
        cout<<j<<" x "<<i<<" = "<<j*i<<"\t";
 
 
 
        }
       }
 
 
    }
 
 
 
 
int main()
{
 
    TablasMultiplicar tablas;
 
    tablas.PedirNoTablas();
 
    tablas.MostrarTablas();
 
    return 0;
}
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
sin imagen de perfil
Val: 160
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con tablas de multiplicar C++

Publicado por Andrés (53 intervenciones) el 04/11/2017 01:42:52
Prueba con:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void TablasMultiplicar::MostrarTablas() {
 
 
	for(int i=1 ; i<11 ; i++) {
 
		cout<<TablaIni<<" x "<<i<<" = "<<TablaIni*i<<"\t";
 
 
		for(int j=(TablaIni+1) ; j <= TablaFin ; j++) {
 
			cout<<j<<" x "<<i<<" = "<<j*i<<"\t";
 
		}
 
		cout << endl;
 
	}
 
 
}

Screenshot-from-2017-11-03-18-50-06
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