Foros del Web » Programación para mayores de 30 ;) » C/C++ »

codigo para combinaciones

Estas en el tema de codigo para combinaciones en el foro de C/C++ en Foros del Web. hola a todos!! quisiera pedirles su ayuda con varios codigos que ya tenia listos pero que el maestro me ha solicitado cambios de ultimo momento ...
  #1 (permalink)  
Antiguo 12/04/2012, 13:02
 
Fecha de Ingreso: abril-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
codigo para combinaciones

hola a todos!!

quisiera pedirles su ayuda con varios codigos que ya tenia listos pero que el maestro me ha solicitado cambios de ultimo momento y no tengo ni idea de como hacerlos :S
les agradeceria mucho su compasion ya que si no los entrego reprobare.

miren elprimer codigo incialmente solo combinaba las letras hxc, pero ahora el maestro quiere que combine cualesquier 3 letras que introduzca el usuario como una cadena, y ya no se comocambiarlo... creen que tenga solucion?

les dejo mi codigo

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


/*
se formaran palabras empezando con 1 c las mas h's que se puedan y 1 x
de ahi se iran "donando" h's para que haya mas x's, hasta que ya se hayan
"donado" todas las x's posibles, entonces se agrega una c a las palabras y
ahora nuestro numero máximo de h's cambia y se vuelve a proceder como antes
hasta llegar donde hay el maximo numero de c's y solo 1 h y 1 x
*/

int main()
{
int tamanio;
int haches;
int ces;
int equises;
int i;
int j;
int k;
int iteraciones;
iteraciones = 0; //Contador de palabras
printf("Inserta el tamaño de la cadena: ");
scanf("%d",&tamanio);
if (tamanio < 3){
printf("\nLa cadena tiene que ser de al menos 3 caracteres");
printf("\npresione cualquier tecla para continuar");
getch();
return 0;
}
ces = 1;
haches = tamanio - 2;
equises = 1;
printf("la cadena es de tamaño %d, empezando con %d c's, %d h's, %d x's", tamanio, ces, haches, equises);
getch();
printf("\n");
for (ces;ces < tamanio - 1; ces++){ //"donando c's"
equises = 1;
haches = tamanio - equises - ces;
do{
for (i = 0; i < ces; i++){ //Se imprime el numero de c's correspondiente
printf ("c");
}
for(j=0; j < haches; j++){ //Se imprime el numero de h's correspondiente
printf ("h");
}
for(k = 0; k<equises ;k++){ //Se imprime el numero de x's correspondiente
printf("x");
};
equises++; //donando h's
haches = tamanio - equises - ces; //calculando el numero maximo de h's
printf("\n");
iteraciones++;
}
while (haches > 0);
}
printf("\nel numero de palabras es %d\npresione cualquier tecla para continuar",iteraciones);
getch();
}

gracias de antemano por leer :P
  #2 (permalink)  
Antiguo 12/04/2012, 13:16
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: codigo para combinaciones

Deberias cambiar estos printf :

printf ("c");

Por algo de la forma:

printf ("%c",caracter1);

y que el usuario ingrese ese caracter..

La onda seria que parametrices un poco mas tu codigo...como lo hiciste es muy statico...
  #3 (permalink)  
Antiguo 12/04/2012, 13:21
 
Fecha de Ingreso: abril-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: codigo para combinaciones

pero como hago para que el programa reconozca el caracter 1 de la cadena que dara el usuario?
  #4 (permalink)  
Antiguo 12/04/2012, 13:25
 
Fecha de Ingreso: abril-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: codigo para combinaciones

eso de pedir al usuario el caracter no queda en el codigo porque el requisito es que se le solicite al usuario ingresar la cadena completa de 3 caracteres y luego de alli tomar las letras para combinarlaas, asi que se me ocurrio que podria separar la cadena en 3 caracteres pero no se que funcion usar :S
  #5 (permalink)  
Antiguo 12/04/2012, 13:42
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: codigo para combinaciones

Código C:
Ver original
  1. char c1,c2,c3;
  2.  
  3. printf("ingrese 3 caracteres: \n");
  4. scanf("%c",&c1);
  5. scanf("%c",&c2);
  6. scanf("%c",&c3);

Luegos has los cambios que te dije...Saludos

PD: Usa el sintax highligth para que apreciemos mejor el codigo.
  #6 (permalink)  
Antiguo 12/04/2012, 18:44
 
Fecha de Ingreso: abril-2012
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Respuesta: codigo para combinaciones

eh estado trabajando en eso que me dices y no funciona... alguno podría ayudarme corrigiendo mi código porfis?o si tienen uno que funcione mejor se los agradecería :S

las indicaciones que me dieron son estas :
El programa deberá de realizar todas las combinaciones posibles con 3 caracteres introducidos por el usuario.



Los caracteres serán introducidos en una sola pregunta al usuario ( no hay que hacer 3 solicitudes de caracteres, solo uno) en forma de cadena.



El programa separará los caracteres y los combinará, presentando a pantalla todas las combinaciones posibles con estos caracteres. De la siguiente forma:


TitleCadena Introducida para Combinar : ABC
AAA
AAB
AAC
ABA
.... // Cuantas sean necesarias
CCC

Deseas realizar otra combinación?

se los agradeceria demasiado :S
  #7 (permalink)  
Antiguo 12/04/2012, 19:12
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: codigo para combinaciones

Entonces asi:

char cadena[4] , c1, c2 ,c3;
scanf("%s",cadena);

c1 = cadena[0];
c2 = cadena[1];
c3 = cadena[2];


eso te sirve??

Etiquetas: combinaciones, int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:44.