Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - leosansan

#171

* La librería <array> está de más.

* La función Conversor no devuelve nada por lo que debería ser de tipo void.

* Los argumentos de dicha función son los dos string, numero y base, el tercer argumento sobra.

* Tanto en la función mencionada como en main comparas y operas los string numero y base como si fueran enteros cuando previamente los has de pasar de string a int. Para ello uso la función atoi de la librería <cstdlib>, se podría hacer de otra forma pero tal vez es lo más cómodo.

Con las observaciones anteriores y respetando en lo posible tu código, a excepción de la forma que usas para cambiar de base, una posible solución sería:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>

using namespace std;

void Conversor(string numero,string base){
  int factor=1,i,resto=0,num,bas;
  num=atoi(numero.c_str()),bas=atoi(base.c_str());
  for (i=0;num>=1 ;i++ ,factor*=10){
    resto+=(num%bas)*factor;
    num=num/bas;
  }
  cout<<resto;
}

int main(){
  string  numero,base;
  cout<<"Escribe el numero que quieres convertir (num/base): ";
  getline(cin,numero,'/');
  getline(cin,base,'\n');
  if(atoi(base.c_str())<=10)
    Conversor(numero,base);
  else
    cout<<"Error no es una base menor de 10";
  return 0;
}


¡¡¡¡ Saluditos! ..... de leosansan!!!!


#172
Programación C/C++ / Re: Problema con Matriz
21 Mayo 2014, 19:41 PM
Porque te sales del array: [4]==>0,1,2,3 no llega a 4.

Por eso si pones:

Código (cpp) [Seleccionar]
int main()
{
    int Supermercado[4][9];
    Supermercado[3][2] = 3;
    cout << Supermercado[3][2] << endl;
    return 0;
}


Funciona sin problemas.

¡¡¡¡ Saluditos! ..... !!!!


#173
Código (cpp) [Seleccionar]
if (!*q) matriz1[u][v] = 0; /* borra el candidato */

¡¡¡¡ Saluditos! ..... !!!!




P.D: Tarda algo más de 30 segundos en encontrar la solución.

Citar
       Estos son los valores de la matriz


                MATRIZ ORDENADA

     1     8    11    16      3    18    13   64
   10    27     2     7     12    15      4   19
   53    24      9   28    17      6    63   14
   26    39    52    23    62    29    20    5
   43    54    25    38    51    22    33   30
   40    57    42    61    32    35    48   21
   55    44    59    50    37    46    31   34
   58    41    56    45    60    49    36   47

Process returned 0 (0x0)   execution time : 32.015 s
Press any key to continue.







#174
Programación C/C++ / Re: Juego tres en raya
16 Mayo 2014, 00:13 AM
Con esto arreglas el problema del contador de ganadas .....pero tendrás que solucionar el nuevo que aparece en las partidas empatadas:

Código (cpp) [Seleccionar]
if(guanyar==1 || empat==1){
            if(jugador==true && guanyar>=0  || empat<=0) jug1++;
            if(jugador==false && guanyar>=0 || empat<=0) jug2++;


¡¡¡¡ Saluditos! ..... !!!!


#175
Cita de: Caster en 12 Mayo 2014, 23:49 PM
Pero sin embargo si introduces los números 15 y 1, el total es 16 por lo tanto al dividir 15/16 en los alumnos aprobados el resultado es 0.9... lo que redondea a 1 y multiplicado por 100 es 100 no 0 y el resultado que da el programa es 0.


No se hace un redondeo sino un truncamiento, vamos le quita los decimales y se queda con la parte entera.

¡¡¡¡ Saluditos! ..... !!!!


#176
Sin punteros ni asignación dinámica de memoria, una forma sería pre dimensionar la matriz para que la función tenga el tamaño de la misma, con el desperdicio de memoria que eso supone:

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

#define FIL   10
#define COL   11


void llenar_matriz(int fil, int col,char matriz[][COL]){
 int i,j;
 for ( i = 0; i < fil; i++)
   for ( j = 0; j < col; j++){
      cout << endl << "matriz[" <<i<< "][" << j << "]=";
      cin>>matriz[i][j];
  }
}

void Mostrar_matriz(int fil, int col,char matriz[][COL] ){
 int i,j;
 for (i = 0; i < fil; i++){
   for ( j = 0; j < col; j++)
     cout << matriz[i][j]<<"  " ;
   cout << endl;
 }
}

int main(){
 int fil,col;
 char  matriz[FIL][COL];
 cout << "Dimensiones del tablero : "<< endl;
 cout << endl<< "Filas del tablero(menor 11): ";
 cin >> fil ;
 cout << endl<< "Columnas del tablero(menor 11): "<< endl;
 cin >>  col;
 llenar_matriz(fil,col,matriz);
 cout << endl;
 Mostrar_matriz(fil,col,matriz);
 return 0;
}


¡¡¡¡ Saluditos! ..... !!!!



#177
Cita de: CesarCort en  7 Mayo 2014, 22:05 PM
............................
Por cierto como hago para presentar el código con indices y colores en los mensajes del foro ?

Elige en las etiquetas GeSHi las de C++.

¡¡¡¡ Saluditos! ..... !!!!


#178
Cita de: Zodiak98 en  7 Mayo 2014, 21:17 PM
¡Vale, gracias! Me siento un poco estúpido por no haberme dado cuenta de eso. xD

¡No hombre!, a todos nos pasa lo mismo con frecuencia. ;)

¡¡¡¡ Saluditos! ..... !!!!


#179

Declaras Tabla antes de tiempo y en los for se va desde 0 a < m,  si no te pasas de la longitud del array.

Con esto funciona pero te dejo que arregles tu lo de las diagonales:

Código (cpp) [Seleccionar]
do{
    cout<<"Ingrese el orden de su matriz Cuadrada:";
    cin>>m;
      if(m<3){
    cout<<"Numero no Valido";}
  }while (m<3);
  int Tabla[m][m];
for(i=0;i<m;i++){
for(j=0;j<m;j++){
cout<<"Ingresa Valor["<<i<<"]["<<j<<"]:";
cin>>Tabla[i][j];
}
  }

  //For para mostrar la tabla
  cout<<endl;
  cout<<"SU MATRIZ ES:"<<endl<<endl;
  for( i=0;i<m;i++){
    for(j=0;j<m;j++){
      cout<<Tabla[i][j]<<"\t";
    }
  cout<<endl;
}
//Suma de filas
for(i=0;i<m;i++) {
for(j=0;j<m;j++)
Sumfil+=Tabla[i][j];
cout<<"Suma de la fila("<<i<<"): "<<Sumfil<<endl;
Sumfil=0;
  }
//Suma de las diagonales


¡¡¡¡ Saluditos! ..... !!!!


#180
No "cerrabas" la cadena con el caracter nulo:

Código (cpp) [Seleccionar]
for(int h = 0; h < CVariable; ++h)
     BString[h] = MString[CVariable-1 - h];
   BString[CVariable]= '\0';


¡¡¡¡ Saluditos! ..... !!!!