elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11
31  Programación / Programación C/C++ / Re: invertir el número entero en: 20 Abril 2018, 03:48 am
la resolución de este problema es sencilla
primero tienes que averiguar la cantidad de dígitos que tiene el numero ingresado

Código:
num = numero ingresado por el usuario;
digitos = 0;
aux = 1;

mientras aux < num hacer:
    digitos = digitos + 1;
    aux = aux * 10;
con esto obtenemos la cantidad de dígitos que tiene el numero
ahora hay que voltear el numero para ello tenemos que descomponer el numero
Código:
//para el ejemplo usaremos el numero 1234
inverso = 0
parte = num/valor_proposicional //El valor posiciona es el valor que toma un dígito de acuerdo con la posición que ocupa dentro del número (unidades, decenas, centenas…)
/*parte = 1234/1000*/
inverso = inverso + (parte * valor_proposicional) en este caso el valor_proposicional sera la nueva posiciona que le estemos dando
/*inverso = 0 +(1 * 1)*/
y si repetimos el proceso iremos re posicionando los dígitos del numero
pero para ello tenemos que cambiar el valor de nuestro numero

Código:
num = num%valor_proposicional
/* num = 1234%1000
esto nos devolverá 234 que son los números que nos hace falta re posicionar
32  Programación / Programación C/C++ / Re: Posición de un dígito en: 15 Abril 2018, 21:05 pm
por que no tratas el numero como un string (char*) de esa forma podras recorrer sus posición  para saber que dígito ocupa que posición
de este modo

Código
  1. #include<stdio.h>
  2.  
  3. int main () {
  4. char numero[15];
  5. int pos = 0;
  6.  
  7. fprintf(stdout, "introduzca un digito: ");
  8. scanf("%s", numero);
  9. fprintf(stdout, "ntrodusca una posicion: ");
  10. scanf("%d", &pos);
  11.  
  12. fprintf(stdout, "%dth digito de %s es %c.\n", pos, numero, numero[pos-1]);
  13.  
  14. return 0;
  15. }
  16.  

33  Programación / Programación C/C++ / Re: Posición de un dígito en: 15 Abril 2018, 20:42 pm
pon tu código
34  Programación / Programación C/C++ / Re: ayuda con las cadenas en: 15 Abril 2018, 03:22 am
cuando llamas a la funcion le pasas 3 parametros cundo esta solo admite 2
strcpy(personaconD,numpe,personas.nombre);
el numpe esta de mas
35  Programación / Programación C/C++ / Re: ayuda con las cadenas en: 15 Abril 2018, 00:24 am
la función que te a propuesto MAFUS es una función creada por el, lo único que tiene el nombre de una función ya conocida, pero si pones esa función en tu código y quitas el include de <string.h> te funcionara conmo quieres, pero como ya dijo el
Citar
ésta no tiene protección contra desbordamiento de buffer
eso tendras que arreglarlo
36  Programación / Programación C/C++ / Re: ayuda con las cadenas en: 14 Abril 2018, 20:30 pm
con la función
int sprintf(char *str, const char *format, ...)
de la biblioteca <stdio.h>
puedes copiar un string con formato a un char*
37  Programación / Programación C/C++ / Re: Consulta sobre programa C en: 14 Abril 2018, 17:32 pm
yo he encontrado mas de una

Código
  1. int main()
  2. {
  3. char periodo[50];
  4. char pintor[50];
  5. char nacion[50];
  6.  
  7. printf("Ingrese periodo: ");
  8. scanf("%s", periodo);
  9.  
  10.  
  11. if ((strcmp (periodo, "Prehistorico")==0) || (strcmp(periodo, "egipcio")==0)){
  12. printf("Galeria 1 \n");
  13. }      
  14.  
  15. else if ((strcmp(periodo, "renacimiento")==0)){
  16. //{ <-- aqui
  17. printf("Ingrese nombre del pintor: ");
  18. scanf("%s", pintor);
  19. }
  20. if ((strcmp (pintor, "Leonardo")==0) || (strcmp(pintor, "Michelangelo")==0)){
  21.  
  22. printf ("Galeria 2 \n");
  23. }  
  24. else if (strcmp(pintor, "Rafael")==0){
  25. printf ("Galeria 3");
  26. }  
  27. else if ((strcmp (pintor, "Tiziano")==0) || (strcmp(pintor, "Boticelli")==0)){
  28. printf("Galeria 4");
  29. }  
  30. else if ((strcmp (pintor, "Greco")==0) || (strcmp(pintor, "Tintoretto")==0)){printf("Galeria 5a");
  31. }
  32. else if (strcmp(pintor, "Bellini")==0){
  33. printf("Galeria 5b");
  34. }  
  35. else {
  36. printf("No hay obras de este pintor \n");
  37. }
  38. }
  39. if ((strcmp (periodo, "barroco")==0)){
  40. //{ <-- aqui
  41. printf("Ingrese nacion: ");
  42. scanf("%s", nacion);
  43. }        
  44.  
  45. if ((strcmp (nacion, "Espana")==0)){
  46. printf("Galeria 6, Velzaquez y Murillo");
  47. }
  48.  
  49. else if ((strcmp(nacion, "Italia")==0)){
  50. printf("Galeria 7, Caravaggio");
  51.  
  52. }
  53. else {
  54. printf("No hay obras de esta nacionalidad");
  55. }
  56. //} <-- aqui
  57. else if ((strcmp(periodo, "expresionismo")==0)){
  58. printf("Galeria 8, Kandiski");
  59. }      
  60. if ((strcmp(periodo, "impresionismo")==0)){
  61. printf("Galeria 8, Van Gogh");
  62. }
  63. else if ((strcmp(periodo, "fauvismo")==0)){
  64. printf("Galeria 8, Manguin");
  65. }
  66. if ((strcmp(periodo, "cubismo")==0)){
  67. printf("Galeria 9, Picasso");
  68. }
  69. else if ((strcmp(periodo, "surrealismo")==0)){
  70. //{ <-- aqui
  71. printf("Ingrese pintor: ");
  72. scanf("%s", pintor);
  73. }
  74. if ((strcmp(pintor, "Dali")==0)){
  75. printf("Galeria 10");
  76. }
  77. else if ((strcmp(pintor, "Miro")==0)){
  78. printf("Galeria 11");
  79. }
  80. else{
  81. printf("No hay obras de este pintor");
  82.  
  83. }
  84. //} <-- aqui
  85. else if ((strcmp(periodo, "informalismo")==0) || (strcmp(periodo, "hiperralismo")==0)){
  86. printf("Galeria 12");
  87. }
  88. else {
  89. printf("No hay obras en este periodo");
  90. }
  91.  
  92.  
  93. return 0;
  94.  
  95. }
  96.  

te has echo un lio con los corchetes
38  Programación / Programación C/C++ / Re: No me ejecuta el printf en: 13 Abril 2018, 17:34 pm
eso es porque solo capturas el nombre del pintor pero no le dices que hacer con el despues
Código
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. int main(){
  5. char periodo[50];
  6. char pintor[50];
  7. char nacion[50];
  8.  
  9. printf("Ingrese periodo: ");
  10. scanf("%s", periodo);
  11.  
  12. if ((strcmp (periodo, "Prehistorico")==0) || (strcmp(periodo, "egipcio")==0)){
  13. printf("Galeria 1 \n");
  14. }else if ((strcmp(periodo, "renacimiento")==0)){
  15. printf("Ingrese nombre del pintor: ");
  16. scanf("%s", pintor);
  17. /*a qui solo capturas el nombre despues de capturarlo sale de todos los else if
  18.  sin pasar por ningun otro*/
  19. }else if ((strcmp (pintor, "Leonardo")==0) || (strcmp(pintor, "Michelangelo")==0)){
  20. printf ("Galeria 2 \n");
  21. }else if (strcmp(pintor, "Rafael")==0){
  22. printf ("Galeria 3");
  23. }else if ((strcmp (pintor, "Tiziano")==0) || (strcmp(pintor, "Boticelli")==0)){
  24. printf("Galeria 4");
  25. }else if ((strcmp (pintor, "Greco")==0) || (strcmp(pintor, "Tintoretto")==0)){
  26. printf("Galeria 5a");
  27. }else if (strcmp(pintor, "Bellini")==0){
  28. printf("Galeria 5b");
  29. }else {
  30. printf("No hay obras de este pintor");
  31. }
  32.  
  33. return 0;
  34. }
  35.  
39  Programación / Programación C/C++ / Re: ordenar estructuras en c en: 13 Abril 2018, 15:36 pm
yo he echo una versión algo diferente.
ya que según la definición de javieer si en la comparación de el primer parámetro es mayor retornamos si es menor retornamos pero si son iguales pasamos a comparar el segundo parámetro de modo que:
Citar
//funcion que devuelve -1 si a > b, 1 si a < b y 0 si a == b
int cmpPersona(_persona a, _persona b){
   si a.altura > b.altura return -1;
   sino a.altura == b.altura
            /*hacemos lo mismo con los demas parametros
            /*cuando lleguemos al ultimo parámetro y los dos son iguales
               entonces las dos estructuras son iguales por lo tanto retornamos 0*/
            sino a.dni == b.dni
                return 0
            finsi
   finsi
      
   /*a qui solo llegaremos si un parámetro de a es menor que b
   return 1;
}

ahora en el main nos quedaría comparar las dos estructuras para saber cual de las dos es mayor

Citar
   switch(cmpPersona(a,b)){*/
      case -1: fprintf(stdout, "a es > b\n"); break;
      case 1: fprintf(stdout, "a es < b\n"); break;
      case 0: fprintf(stdout, "a es == b\n"); break;
   }

y si lo que queremos es ordenar una lista de (TDA)personas
usaríamos un algoritmo de ordenación ya conocido para el ejemplo usara el método de la burbuja

Citar
void burbuja(_persona* array){
   int i, j;
   _persona aux;
   for(i=1; i<max; i++){
      for(j=0; j<max-i; j++){
         if(cmpPersona(array[j], array[j-1]) > 0){
            aux = array[j+1];
            array[j+1] = array[j];
            array[j] = aux;
         }
      }
   }
}
40  Programación / Programación C/C++ / Re: Programa de archivos y pilas en: 10 Abril 2018, 22:44 pm
edita tu post y pon tu código entre etiquetas GeSHi
también pon los errores que te marca el compilador
para que pueda ayudarte
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines