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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 ... 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 [102] 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 ... 132
1011  Programación / Programación C/C++ / Re: Help! Calcular máximo de 3 numeros usando función en: 17 Febrero 2013, 17:09 pm
Estoy realizando un programa que calcula el máximo de tres números usando una función que nos de el máximo de dos números


Además de en los argumentos de la función, tienes varios errores menores que te comento en el código:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int mayor(int n1,int n2);/*aqui tenias"{" en lugar de ;*/
  5.  
  6. int main(){
  7.  int num1, num2, num3;
  8.  int max; /*<==aqui esta de mas "mayor"*/
  9.  printf("Introduce un numero: ");
  10.  scanf("%d",&num1);
  11.  printf("Introduce un numero: ");
  12.  scanf("%d",&num2);
  13.  printf("Introduce un numero: ");
  14.  scanf("%d",&num3);
  15.  max = mayor(num1, num2);
  16.  printf("El mayor es: %d \n", mayor(max, num3));/*y aqui tenias dos %d */
  17.  system("PAUSE");
  18.  return 0;
  19. }
  20. // FUNCION
  21. int mayor(int n1,int n2){
  22. if (n1 > n2)
  23.        return n1;
  24. else
  25.        return n2;
  26. }
  27.  

Aunque sería más guay calcular el máximo con una función que calcule el máximo de tres:

Código
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int mayor(int n1,int n2,int n3);
  6.  
  7.  int main(){
  8.  
  9.  int num1, num2, num3;
  10.  int max;
  11.  
  12.  printf("Introduce un numero: ");
  13.  scanf("%d",&num1);
  14.  printf("Introduce un numero: ");
  15.  scanf("%d",&num2);
  16.  printf("Introduce un numero: ");
  17.  scanf("%d",&num3);
  18.  max = mayor(num1, num2,num3);
  19.  printf("El mayor es: %d \n", max);
  20.  system("pause");
  21.  return 0;
  22. }
  23. // FUNCION
  24. int mayor(int n1,int n2,int n3){
  25.  if ((n1= n1>n2 ? n1:n2)>(n3))
  26.    return n1;
  27.  else
  28.  return n3;
  29. }
  30.  

Saluditos!.
1012  Programación / Programación C/C++ / Re: Ayuda, programa en C .. El ahorcado.... en: 15 Febrero 2013, 20:36 pm
El código hasta ahora me va bien. Explico : Van a ser 3 palabras, no solo uno, por eso creé el aleatorio.

Pues yo te he puesto cuatro  :-\. Era para que una de ellas tuviera repetida alguna letra  :laugh:.

Es un código muy mejorable, pero así tienes donde fijarte:


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <ctype.h>
  5. #include <string.h>
  6.  
  7. int main(){
  8.  char ch;
  9.  char palabra[10]={0},palabras[4][10]={"futbol","pala","balon","pelota"} ;/*con letra repetida*/
  10.  int i,j,cont=0,errores=0,intentos=0,flag=0;
  11.  srand (time(NULL));
  12.  int aleatorio;
  13.  aleatorio =rand() % 3;
  14.  for (i=0;i<3;i++)
  15.    printf("%s  ",palabras[i]); /*para que veas las palabras*/
  16.  printf("\n\nTe ha tocado esta palabra: \n\n");
  17.  for (i=0;palabras[aleatorio][i]!='\0';i++){
  18.     printf("_ ");palabra[i]='_';
  19.  }
  20.  palabra[i]='\0';
  21.  printf("\n\n Tienes 10 intentos.\n\n");
  22.  do{
  23.    intentos++;
  24.    printf("\n\nVe escribiendo las letras. Intento %d\n",intentos);
  25.    ch=getchar();
  26.    while (getchar ()!='\n');
  27.    for (i=0;palabra[i]!='\0';i++){
  28.      if(ch == palabras[aleatorio][i] && palabra[i]=='_') {
  29.          palabra[i]=toupper(ch);
  30.          puts("\n");
  31.          for (j=0;j<strlen (palabra);j++)
  32.            printf("%c ",palabra[j]);
  33.          flag=1;cont++;
  34.      }
  35.    }
  36.    if (flag ==0) {
  37.      errores++;
  38.      printf("Has fallado. Llevas %d errores.\n", errores);
  39.    }
  40.    else {
  41.      printf("  Bien, has acertado.\n");
  42.      flag=0;
  43.    }
  44.    if (cont==strlen (palabra)){
  45.       if (errores==0)
  46.        printf("\n\n  TOTAL ACIERTO.\n\n");
  47.       else
  48.        printf("\n\n  ACIERTO con %d errores.\n\n",errores);
  49.       return 1;
  50.    }
  51.  } while (intentos<10);
  52.  return EXIT_SUCCESS;
  53. }
  54.  

Saluditos!.
1013  Programación / Programación C/C++ / Re: Ayuda con un programailla de sumas aritmeticas en: 14 Febrero 2013, 22:57 pm
Para quien nos "vea" parecería que mi código no funcionase correctamente, y todo lo contrario, hace lo que se le pide. así que sólo unos pequños comentarios, entre tú y yo:

Algunos comentarios:

* Los elementos de un array pueden inicializarse mediante una lista de valores, si cada elemento es a su vez un array (como es tu caso) se deben utilizar listas anidadas, de esta forma:
Código
  1. int M[2][12] = {
  2.   {0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5},
  3.   {0, 3, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6}
  4. }

Creo que aquí hablaríamos de "claridad", ya que "creo" que tan correcta es una como otra opción.
Por ejemplo, al declarar una matriz de tres por tres se me puede "apetecer" la primera o la segunda forma:


Código
  1. a[3][3]={1,2,3,4,5,6,7,8,9};
  2.  
  3. a[3][3]={{1,2,3},{4,5,6},{7,8,9};

No niego que la segunda es más ·visible" y menos expuesta a errores, pero será igual de válida que la primera.

Citar
* El operador lógico AND tiene mayor prioridad que el operador lógico OR, por ello en esta expresión los paréntesis son superfluos (con o sin ellos el resultado es el mismo):
Código
  1. a%4 ==0 && a%100!=0 ||  (a%400==0)


Superfluo no es sinónimo de mal, sino exceso de celo. Reconozco que en este caso peque del copy´pega de un código antiguo. No es que quiera disculpar ese "exceso", pero en general más vale pecar por exceso que por defecto, más estos códigos que yo al menos hago con cierta "alegría".


Citar
* El resultado de los mentados operadores es uno si se cumple la condición y cero en caso contrario, en base a ello si revisamos el condicional:]
Código
  1. if (a%4 ==0 && a%100!=0 ||  (a%400==0))
  2.   M_=M[1][mes_-1];
  3. else
  4.   M_=M[0][mes_-1];
Este se puede reducir a:
Código
  1. M_ = M[a%4 == 0 && a%100 != 0 || a%400 == 0][mes_-1];

Esto último es de veteranía. Aunque considero que el if-else es más "entendible" para quien propuso el tema, en virtud de lo que colgó, no dejo de reconocer que es algo a tener en cuenta.

Conclusión: gracias por las puntualizaciones, agudas como siempre y que me ayudan a mejorar hasta los detalles más nimios.

Saluditos!.
  :silbar:
1014  Programación / Programación C/C++ / Re: Ayuda con getchar:( en: 14 Febrero 2013, 16:22 pm
................... Peeeeeeeeeeeeeeeeeeeeeeeeeeeeeeero, si tu pones U, que pertenece a la palabra, te dice que has fallado, como hago para que eso no pase? En el sentido de que, que tengo que hacer para que reconozca la U ? pero antes de la F por ejemplo.. No sé si me expliqué bien...

Por ejemplo:

Código
  1. #include <stdio.h>
  2. #include <time.h>
  3.  
  4. int main(){
  5.  char ch;
  6.  char ch1;
  7.  int errores1;
  8.  errores1 = 0;
  9.  srand (time(NULL));
  10.  int aleatorio;
  11.  aleatorio =+1 +rand() % 3;
  12.   //if(aleatorio == 2)
  13.  
  14.  printf("Te ha tocado esta palabra\n"); // La palabra es FUTBOL
  15.  printf("_ _ _ _ _ _");
  16.  printf("Ve escribiendo las letras\n");
  17.  
  18.  ch=getchar();
  19.  while (getchar ()!='\n');
  20.  if(ch == 'f') {
  21.    printf("Bien, has acertado. F _ _ _ _ _\n");
  22.  }
  23.  else if(ch == 'u') {
  24.    printf("Has acertado. _U _ _ _ _\n");
  25.  }
  26.  else  {
  27.    errores1++;
  28.    printf("Has fallado. Llevas %d errores.\n", errores1);
  29.  }
  30.  return 0;
  31. }
  32.  

Saluditos!.
1015  Programación / Programación C/C++ / Re: Ayuda con un programailla de sumas aritmeticas en: 14 Febrero 2013, 14:56 pm
Y según Wikipedia:

Código
  1. #include <stdio.h>
  2. #include<locale.h>
  3. #include <stdlib.h>
  4. int main()
  5. {
  6.    setlocale(LC_ALL, "Spanish");
  7.    int dia_=0,dia_semana=0,M_=0,mes_,a=0;
  8.    int M[2][12] = {0,3,3,6,1,4,6,2,5,0,3,5,
  9.    0,3,4,0,2,5,0,3,6,1,4,6 };
  10.    char dia[7][10] = {"Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"};
  11.    while (1){
  12.      printf ("Indique el  mes (1-12): ");
  13.      fflush (stdout);
  14.      scanf("%d",&mes_);
  15.      printf ("Indique el día del mes: ");
  16.      fflush (stdout);
  17.      scanf("%d",&dia_);
  18.      printf ("Indique el año: ");
  19.      fflush (stdout);
  20.      scanf("%d",&a);
  21.      if  (a%4 ==0 && a%100!=0 ||  (a%400==0))
  22.        M_=M[1][mes_-1];
  23.      else
  24.        M_=M[0][mes_-1];
  25.      dia_semana=((a-1)%7+((a-1)/4 - 3*(((a-1)/100)+1)/4)%7+M_+dia_%7)%7;
  26.       printf("\n%s  dia de la semana %d\n\n",dia[dia_semana],dia_semana);
  27.    }
  28.    return EXIT_SUCCESS;
  29. }
  30.  
  31.  

Saluditos!.
1016  Programación / Programación C/C++ / Re: Ayuda con getchar:( en: 13 Febrero 2013, 22:48 pm
Mejor pon el código que llevas, a ver si nos enteramos mejor.
Saluditos!.
1017  Programación / Programación C/C++ / Re: Calcular determinante de una matriz NxN en: 13 Febrero 2013, 20:35 pm
Os dejo aquí un programa que me creé para calcular determinantes de matrices NxN. Personalmente no me gustan los algoritmos recursivos, pero funcionan de maravilla en este caso :)


Consejos, mejoras ;)

Y tanto que funciona bien ¡ ¡ ¡

Sólo unas pequeñas observaciones:

* Si el tamaño es 1 el determinante es el número y en tu código lo transformas automáticamente en un determinante de 2x2.

* Cambiaría, para que no resulte "espesa" la entrada de datos y que los índices sean "matemáticos" (no se suele usar en cálculo (0,0) sino (1,1) para la primera posición):

Código
  1. void Leer_matriz(int** a,unsigned int MAX)
  2. {
  3.    int i,j;
  4.    cout<<"Introduce el numero para la posicion: "<<endl;
  5.    for (j = 0; j < MAX; j++)
  6.        for (i = 0; i < MAX; i++)
  7.        {
  8.            cout<<" ("<<i+1<<","<<j+1<<") = ";
  9.            cin>>a[i][j];
  10.        }
  11. }

Como ves, chorradas al fin y al cabo.

Saluditos!.

P.D:Y gracias por compartir
;-) ;-) ;-)
1018  Programación / Programación C/C++ / Re: Descomponer numero en factores.. en: 13 Febrero 2013, 19:55 pm

Una discusión algo técnica (y en ingles) donde se explica el porque y se da una alternativa es


En resumen, con paréntesis al final se inicializan a cero, comprobado:

Código
  1. int *factores=new int[32]();//con parentesis se inicializan a cero

No siendo necesario:

Código
  1. for (i=0;i<32;i++)
  2.    factores[i]=0;

Saluditos!.
 . .... y gracias n-ésimas amigo rir.
1019  Programación / Programación C/C++ / Re: Ayuda con un programailla de sumas aritmeticas en: 13 Febrero 2013, 19:24 pm
...............................tengo que hacer un programa que imprime en pantalla el numero que cae el dia de la semana osea del 1 al 7 ingresando Dia,Mes,Año.
 

Para tener el código no tienes más que mirarte este enlace:

http://es.wikipedia.org/wiki/Algoritmo_para_calcular_el_d%C3%ADa_de_la_semana


Saluditos!.

P.D: Por cierto ¿por qué le llamas al tema "programilla con sumas?. no indica nada, y lo de ayuda se sobreentiende.

Podías llamarle "entrar fecha y me dé día de la semana", es más explícito de tu problema.

Si tienes dudas no dudes  :P  en preguntar.  ;)
1020  Programación / Programación C/C++ / Re: Ayuda lenguaje C color en los programas en: 13 Febrero 2013, 16:32 pm
Como agregarle colores en fondo y texto a un programa como para turbo C o dev C ayuda programacion en lenguaje C ?


 Espero que te sirva el ejemplo:

Código
  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include<stdlib.h>
  4.  
  5. int main()
  6. {
  7.    system("color 70");
  8.  
  9.    HANDLE hOut;
  10.  
  11.    hOut = GetStdHandle(STD_OUTPUT_HANDLE);
  12.  
  13.    SetConsoleTextAttribute(hOut,
  14.                            FOREGROUND_RED);
  15.    printf ("Red     \n");
  16.    SetConsoleTextAttribute(hOut,
  17.                            FOREGROUND_RED |
  18.                            FOREGROUND_INTENSITY);
  19.    printf ("Red\n" );
  20.  
  21.    SetConsoleTextAttribute(hOut,
  22.                            FOREGROUND_GREEN);
  23.    printf ("Green   \n");
  24.    SetConsoleTextAttribute(hOut,
  25.                            FOREGROUND_GREEN |
  26.                            FOREGROUND_INTENSITY);
  27.    printf ("Green\n");
  28.  
  29.    SetConsoleTextAttribute(hOut,
  30.                            FOREGROUND_BLUE);
  31.    printf ("Blue    \n");
  32.    SetConsoleTextAttribute(hOut,
  33.                            FOREGROUND_BLUE |
  34.                            FOREGROUND_INTENSITY);
  35.    printf ("Blue\n");
  36.  
  37.    SetConsoleTextAttribute(hOut,
  38.                            FOREGROUND_RED |
  39.                            FOREGROUND_GREEN);
  40.    printf ("Yellow  \n");
  41.    SetConsoleTextAttribute(hOut,
  42.                            FOREGROUND_RED |
  43.                            FOREGROUND_GREEN |
  44.                            FOREGROUND_INTENSITY);
  45.    printf ("Yellow\n");
  46.  
  47.    SetConsoleTextAttribute(hOut,
  48.                            FOREGROUND_GREEN |
  49.                            FOREGROUND_BLUE);
  50.    printf ("Cyan    \n");
  51.    SetConsoleTextAttribute(hOut,
  52.                            FOREGROUND_GREEN |
  53.                            FOREGROUND_BLUE |
  54.                            FOREGROUND_INTENSITY);
  55.    printf ("Cyan\n");
  56.  
  57.    SetConsoleTextAttribute(hOut,
  58.                            FOREGROUND_BLUE |
  59.                            FOREGROUND_RED);
  60.    printf ("Magenta \n");
  61.    SetConsoleTextAttribute(hOut,
  62.                            FOREGROUND_BLUE |
  63.                            FOREGROUND_RED |
  64.                            FOREGROUND_INTENSITY);
  65.    printf ("Magenta\n");
  66.  
  67.    SetConsoleTextAttribute(hOut,
  68.                            FOREGROUND_RED |
  69.                            FOREGROUND_GREEN |
  70.                            FOREGROUND_BLUE);
  71.    printf ("White   \n");
  72.    SetConsoleTextAttribute(hOut,
  73.                            FOREGROUND_RED |
  74.                            FOREGROUND_GREEN |
  75.                            FOREGROUND_BLUE |
  76.                            FOREGROUND_INTENSITY);
  77.    printf ("White\n");
  78.  
  79.  
  80. // Set text color as Yellow with white background.
  81.   /* SetConsoleTextAttribute(
  82.     GetStdHandle( STD_OUTPUT_HANDLE ),
  83.     FOREGROUND_INTENSITY              | // Set Text color
  84.     FOREGROUND_RED | FOREGROUND_GREEN | // Text color as Yellow.
  85.     BACKGROUND_INTENSITY              | // Set Background color
  86.     BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE ); // White Bg*/
  87.  
  88.  
  89. /*PARA system ("color n n"):
  90.     DEBES COGER UNA COMBINACIóN DE NUMERO Y LETRA:
  91. Color de consola :
  92. 0 = Negro
  93. 1 = Azul
  94. 2 = Verde
  95. 3 = Aguamarina
  96. 4 = Rojo
  97. 5 = Purpura
  98. 6 = Amarillo
  99. 7 = Blanco
  100. 8 = Gris
  101. 9 = Azul claro
  102.  
  103. Color de texto:
  104. A = Verde claro
  105. B = Aguamarina claro
  106. C = Rojo claro
  107. D = Purpura claro
  108. E = Amarillo claro
  109. F = Blanco brillante*/
  110.  
  111.    return 0;
  112. }
  113.  

Saluditos!.
Páginas: 1 ... 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 [102] 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 ... 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines