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ú

Temas - mariano96

#1
Programación C/C++ / Menu string
24 Febrero 2015, 01:49 AM
Hola, tengo una duda a la hora de hacer un menú que devuelva la opción elegida por el usuario: el problema es que tengo que hacer un do-while para que vaya verificando si la opción es correcta y hay opciones numéricas (1,2,3,etc) y una letra(q-para salir-).

string menu(){

   string opcion;

do{
   1-
   2-
   etc
   q-

}while(opcion.length()>1 || opcion[0]=='0' || (opcion[0]>'q' || opcion[0]<'q'));

}

Al teclear 0 o una letra distinta de 'q' sí que se repite el do-while, pero se repite al teclear un número del 1 al 9 y no quiero que ocurra eso. A ver si me podéis ayudar.
Gracias de antemano.
#2
Programación C/C++ / mayor divisor primo
13 Febrero 2015, 22:14 PM
Tengo que obtener el mayor divisor primo dado un numero n pero no me sale:

Código (cpp) [Seleccionar]
bool esPrimo(int n){
bool numPrimo;
int i;

numPrimo = false;
int m = 0; // los nº primo solo tienen dos divisores: el mismo y 1. si se pasa no es primo
bool primoEncontrado = false;

for (i = 1;  n % i == 0 && !primoEncontrado; i++){

if (n%i>0){
numPrimo = false;
primoEncontrado = false;
}
else{
numPrimo = true;
primoEncontrado = true;
}
}
return numPrimo;
}


int mayorDivisorPrimo(int n){
int i,mayor;

mayor = 0;

for (i = 1; i <= n; i++){
if (n%i == 0){
if (esPrimo(i) == true){
if (i > mayor){
mayor = i;
}
}
}
}
return mayor;
}


Mod: Tema modificado evita escribir en mayúsculas (título) y usa etiquetas GeSHi para mostrar tu codigo
#3
Programación C/C++ / eliminar componente array
13 Febrero 2015, 19:32 PM
Hola de nuevo xD,

tengo un problema con este programa:

int eliminaTodasApariciones(char orig[], char c, char dest[]){
   int i,j,numElim;

   numElim = 0;
   
   for (i = 0; i < strlen(orig); i++){
      for (j = i; j < strlen(orig); j++){
         
         if (orig != c){
            dest[j] = orig;
            dest[j + 1] = '\0';
         }
         
      }
      if(orig == c){

         numElim++;

      }
   }

   return numElim;
}

Se supone que tiene que eliminar el caracter que indique en la cadena pero al ejecutarlo pongo "hola" y el caracter a eliminar ('o') y en lugar de devolverme "hla" me devuelve hhla.
AYUDA please
#4
Programación C/C++ / PIRAMIDE
13 Febrero 2015, 18:29 PM
Hola,

a ver si alguien me puede ayudar:

tengo que hacer una pirámide del tipo:
1
12
123
1234
123
12
1

Dependiendo del numero que le des, en este caso 4.
Solo he podido llegar a la mitad, pero no sé cómo descender.
El prototipo de funcion es: int piramide(int n);

Gracias de antemano