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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 ... 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [31] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 ... 49
301  Programación / Programación C/C++ / Re: contar letras de un texto en: 2 Julio 2012, 15:37 pm
Dale a editar mensaje, seleccionas el código, y arriba a la derecha (donde está para poner negrita, subrayado...),. hay un cuadro en el que pone "GeSHi", pulsas, buscas C y ya.

La etiqueta de code=c ponla al principio del código, y la de /code ponla al final
302  Programación / Programación C/C++ / Re: contar letras de un texto en: 2 Julio 2012, 14:06 pm
En el texto no te sale la dimensión de algunos arrays porque querías poner, por ejemplo:

Código
  1. Variable[i]

Y el código

Código:
[i]

Es para poner en cursiva un texto. Para solucionarlo, ponlo entre etiquetas GeSHi como ha dicho ya daniyo, y entonces, lo leeremos.

Saludos.
303  Programación / Programación C/C++ / Re: Cámara en C++ con SDL en: 1 Julio 2012, 20:45 pm
No sé mucho de C, pero quizá pueda ser así:

Código
  1.  
  2. if(direction[0])
  3.       {
  4.       camera.x = camera.x-10;
  5.       }
  6. else if(direction[1])
  7.       {
  8.       camera.x = camera.x+10
  9.       }
  10.  

Si le poner camera.x-10 no guardas el valor, creo que debes asignárselo (no sé si es lo que quieres realmente...).

Espero no haberme equivocado.

Saludos.
304  Programación / Programación C/C++ / Re: Ayuda! con el IF en: 1 Julio 2012, 17:33 pm
De nada, me alegro de que lo hayas entendido  ;D
305  Programación / Programación C/C++ / Re: Ayuda! con el IF en: 1 Julio 2012, 16:16 pm
Se pone el "==0" porque la función devuelve 0 si las cadenas son iguales, y otro número si son diferentes.

O sea, diríamos:

"Si las cadenas son iguales, imprime "Hola", sino, imprime "ERROR".

Los dos paréntesis están de más. Pueden ponerse o no, no son obligatorios. Podría ser también así:

Código
  1. if (strcmp(producto, "patatas")== 0)

Saludos.
306  Programación / Programación C/C++ / Re: Ayuda! con el IF en: 1 Julio 2012, 15:58 pm
Hola.

Para comparar cadenas, no puede hacerse tal y como compararíamos un número o un carácter (y así es como tú lo tienes).

Para compararlas, hay que usar la función strcmp, incluida en la librería string.h .

La función devuelve 0 si las cadenas son iguales, y otro valor si son distintas.

Es decir, el programa quedaría así:

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. char producto[40];
  6.  
  7. printf("Hola, que producto quiere?\n");
  8. printf("Hay , 1 - patatas, 2 - tomates\n");
  9. scanf("%s", producto);
  10. if ((strcmp(producto, "patatas"))== 0)
  11. {
  12. printf("Hola\n");
  13. }
  14. else
  15. {
  16. printf("ERROR");
  17. }
  18.  
  19. while(1);
  20. return 0;
  21.  
  22. }
  23.  

También te recomiendo usar la función gets (o mejor aún, fgets), para pedir cadenas de caracteres, ya que scanf te coge solo hasta el primer espacio que introduce el usuario.

Cualquier duda, pregunta  ;)

Espero haberte ayudado.

Saludos.
307  Programación / Programación C/C++ / Re: Calcular moda, mediana, media aritmética, media geométrica de n números en C en: 28 Junio 2012, 00:39 am
Para hacer la moda, podrías probar algo así:

Creas otro vector del mismo tamaño que a (por ejemplo, el vector se podría llamar moda).

En un bucle for anidado, comparas a[0] con el resto de elementos. Las veces que se haya repetido el número, la almacenas en moda[0]. Así con todos los elementos de a.

Al final, en otro bucle for, buscas qué elemento de moda es el mayor. Así, tendrás la posición del vector donde se sitúa el elemento que más veces se repite.

Saludos.
308  Programación / Programación C/C++ / Re: Calcular moda, mediana, media aritmética, media geométrica de n números en C en: 28 Junio 2012, 00:31 am
Aquí te dejo la media geométrica:

Código
  1.  
  2. d=1;
  3.    for(i=0;i<n;i++){
  4.                     d*=a[i];
  5.    }
  6.    mg = pow( d, (1.0/n) );
  7.    printf("La media geometrica es: %f\n",mg);
  8.  

Lo que le pasaba era que en la función pow, en el segundo parámetro (1.0/n), es decir, el exponente, siempre iba a ser un número decimal (salvo que n = 1).

Así, para que el programa sepa que el resultado de dicha operación (1/n) es decimal, lo indicamos poniendo 1.0

De lo contrario, te cogería la parte entera de dicha operación (que, salvo para n = 1, daría 0). De ahí que siempre elevara la variable d a 0, y por eso diera como resultado 1.

Saludos.
309  Programación / Programación C/C++ / Re: Calcular moda, mediana, media aritmética, media geométrica de n números en C en: 27 Junio 2012, 23:41 pm
Eso sucede porque el resto de variables con las que haces operaciones deben ser también de tipo float. De lo contrario, muchas veces al hacer una operación en la que intervengan un float y un int, te dejará solo la parte entera.

Por lo tanto, el código quedaría así:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int main(int argc, char *argv[])
  5. {
  6.    int n,i, j;
  7.    float c, d;
  8.    float ma,mg;
  9.    float *a;
  10.  
  11.    printf("Programa que calcula la moda, mediana,  media aritmetica y media geometrica de n numeros\n");
  12.    printf("Introduce n\n");
  13.    scanf("%d",&n);
  14.    a=(float*)malloc(sizeof(float)*n);
  15.    printf("Introduce los %d numeros\n",n);
  16.    for(i=0;i<n;i++){
  17.                     scanf("%f",&a[i]);
  18.                     }
  19.    printf("Los %d numeros son:\n",n);
  20.    for(i=0;i<n;i++){
  21.                     printf("%f\n",a[i]);
  22.                     }
  23.    //Media Aritmetica
  24.    c=0;
  25.    for(i=0;i<n;i++){
  26.                       c+=a[i];
  27.                       }
  28.    ma=c/n;
  29.    printf("La media aritmetica es: %f\n",ma);
  30.  
  31.    //Media Geométrica
  32.    d=1;
  33.    for(i=0;i<n;i++){
  34.                     d*=a[i];
  35.                     }
  36.    mg=pow(d,(1/n));
  37.    printf("La media geometrica es: %f\n",mg);
  38.  
  39.    system("PAUSE");
  40.  return 0;
  41. }
  42.  
  43.  
  44.  
310  Programación / Programación C/C++ / Re: Calcular moda, mediana, media aritmética, media geométrica de n números en C en: 27 Junio 2012, 22:13 pm
Código
  1. //Media Geométrica
  2.    d=0;
  3.    for(i=0;i<n;i++){
  4.                     d*=a[i];
  5.                     }
  6.    mg=pow(c,(1/n));
  7.    printf("La media geometrica es: %f\n",mg);
  8.  

Lo que haces es inicializar la variable d a 0, y después con

Código:
 d*=a[i];

multiplicas d (0) por un valor, que dará 0. Así, el resultado de d al salir del bucle será 0.

Además, en el pow deberías poner

mg = pow(d, (1/n));

(tenías puesto como base a c en vez de a d).

Por lo tanto, podrías hacer algo así:

Código
  1. //Media Geométrica
  2.    d=1;
  3.    for(i=0;i<n;i++){
  4.    d*=a[i];
  5.    }
  6.    mg=pow(d,(1/n));
  7.    printf("La media geometrica es: %f\n",mg);
  8.  

Saludos.
Páginas: 1 ... 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [31] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 ... 49
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines