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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: 1 2 3 [4] 5
31  Programación / Programación C/C++ / Calcular días que quedan hasta final de año en: 15 Enero 2012, 18:57 pm
Hola.

Estoy practicando con ejercicios de arrays, y estaba haciendo uno en el que tengo que
hacer un array en el que inserto el número de días que tiene cada mes. A partir de ahí, le pido al usuario que inserte una fecha (sólo día y mes). Entonces, tengo que averiguar cuántos días quedan hasta final de año.

Mi código es:

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main(){
  5.  
  6.  
  7.    int n,i,x,d,suma,transcurridos,restantes;
  8.    int dias[12]={31,28,31,30,31,30,31,31,30,31,30,31};
  9.  
  10.    printf("Elige un dia del 1 al 31");
  11.    scanf("%d",&d);
  12.  
  13.    do{
  14.    printf("Elige un mes del 1 al 12");
  15.    scanf("%d",&n);
  16.    }
  17.    while(n<1||n>12);
  18.  
  19.  
  20.  
  21.    for(i=0;i<n;i++);
  22.  
  23.    transcurridos+=dias[n-1];
  24.    transcurridos+=d;
  25.    restantes=365-transcurridos;
  26.  
  27.    printf("Dias restantes: %d",restantes);
  28.  
  29.    system("pause");
  30.    return 0;
  31. }

Sé que mi problema está al plantear el bucle for (de hecho, lo que tengo en el bucle for no lo he enlazado con las instrucciones de debajo)...

Muchas gracias.

Saludos.

32  Programación / Programación C/C++ / Array que lea ciertos números en: 15 Enero 2012, 00:43 am
Hola.

Estoy haciendo un programa en el que cada elemento de un array lea los numeros pares.

Por ejemplo:

v[0] sería 2
v[1] sería 4
v[2] sería 6

Así hasta v[300].

Tengo hecho esto:

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4.  
  5. int main(){
  6.  
  7.    int i;
  8.    int v[300];
  9.  
  10.    for(i=0;i<300;i++)
  11.  
  12.    i=2*i+2;
  13.    printf("%d",v[i]);
  14.  
  15.    system("pause");
  16.    return 0;
  17. }
  18.  

Aunque compila, da el resultado 1420; y lo que quiero que salga es 2 4 6 8...

Muchas gracias.

Saludos.
33  Programación / Programación C/C++ / Calcular la media a través de un array en: 14 Enero 2012, 18:53 pm
Hola.

Estoy aprendiendo C a través del manual de C de Nacho Cabanes.

He llegado a la parte de los arrays, y el primer ejercicio es:

"Un programa que pida al usuario 4 números, los memorice (utilizando
una tabla), calcule su media aritmética y la muestre en pantalla."

He hecho lo siguiente:

Código
  1. //Pedir al usuario 4 numeros enteros y calcular  la media aritmetica almacenando los datos en un array.
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. int main(){
  7.  
  8.    int numero[4];
  9.    int media,a,b,c,d;
  10.  
  11.    printf("Introduce los cuatro valores\n");
  12.    scanf("%d",&a);
  13.    scanf("%d"&b);
  14.    scanf("%d"&c);
  15.    scanf("%d"&d);
  16.  
  17.    a=numero[0];
  18.    b=numero[1];
  19.    c=numero[2];
  20.    d=numero[3];
  21.  
  22.     media=(numero[0]+ numero[1]+numero[2]+numero[3])/4;
  23.    printf("La media de %d, %d, %d, y %d es %d",a,b,c,d,media);
  24.  
  25.    system("pause");
  26.    return 0;
  27. }
  28.  

Pero me da error. Supongo que el problema está en cómo asigno la variable a cada elemento del array.

Muchas gracias.

Saludos.
34  Foros Generales / Dudas Generales / Representación interna de un número real en: 11 Enero 2012, 19:54 pm
Hola.

Tengo dudas con la representación interna de un número real. Por ejemplo, me dan el siguiente bit

1000001101.1.

He de indicar signo, mantisa y exponente.

El signo sé que es 0 si es positivo y 1 si es negativo. ¿Cómo sé si es positivo o negativo? Esto no es como en complemento a2, ¿no? En mis apuntes dice que es positivo, pero no lo veo.

La mantisa. ¿He de pasar la coma a la derecha hasta que no quede ningún 0 a mi izquierda? Entonces sería 0000011011.

Y para el exponente, ¿qué son el número de comas que paso a la derecha? Como hay 8 comas habría que poner el número 9 en binario, es decir, 1001.

Saludos y muchas gracias.
35  Programación / Programación C/C++ / Preguntas de teoría sobre funciones en: 11 Enero 2012, 19:39 pm
Hola.
.
En mis apuntes vienen las siguientes preguntas de teoría, pero a mí me parece que se contradicen:

¿Debe una función acceder a variables de fuera de la función?
   

NO DEBE HACERLO. SOLO SI SE LE PASA COMO PARÁMETROS





¿Se puede acceder desde fuera de una función a una variable definida dentro?
   

NO

¿Se puede acceder desde dentro de una función a una variable definida fuera?
   

SI, AUNQUE HAY QUE EVITARLO EN LA MEDIDA DE LO POSIBLE


¿Alguien me las podría explicar?

Saludos y muchas gracias
36  Programación / Programación C/C++ / Programar el juego de la ruleta en: 8 Enero 2012, 10:59 am
¡Hola!

Estoy programando el juego de la ruleta.

Tengo hecho un bucle do-while  en el que meto que la apuesta mínima son 10 euros.

Después, otro que pregunta la modalidad de juego que quieres coger. Son unas 10 opciones, y he llegado hasta la 6, pero en la 7 tengo un problema.

Tengo que apostar por la fila. Es decir, tengo que preguntar por qué fila voy a apostar, e introducir un número del 1 al 12 (como se puede ver en la ruleta que he insertado en este mensaje, hay 12 filas).

También he puesto ya el código para que el ordenador piense un número del 0 al 36.

Mi problema viene cuando, por ejemplo, el ordenador piensa aleatoriamente, el 24 (o cualquier otro número). Entonces, al no tener asignado el número 24 a ninguna fila; pues no hace nada.

¿Qué puedo hacer para que el programa sepa que la fila 1 son los números 1, 2 y 3; la 2 los números 4, 5 y 6; y así hasta la fila 12?

Es más un problema de plantear el algoritmo, no de programar. ¿Podríais darme alguna pista?


Muchísimas gracias.

Saludos.
37  Programación / Programación C/C++ / Programa algoritmo multiplicación en: 26 Diciembre 2011, 16:04 pm
He hecho un programa que resuelve la multiplicación tal y como lo haríamos sin calculadora, es decir, por ejemplo:

 222
 x22
 ___
 444
444
____
4884

Mi código es el siguiente:

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main (void){
  5.  
  6.    int n1,n2,n3,n4,n5,a,b,c;
  7.  
  8.    printf("PRIMER NUMERO ");
  9.    printf("introduce el primer numero");
  10.    scanf("%d", &n1);
  11.  
  12.  
  13.  
  14.     printf("SEGUNDO NUMERO ");
  15.  printf("introduce la primera cifra");
  16.  
  17.  scanf("%d", &n4);
  18.  
  19.      printf("introduce la segunda cifra");
  20.    scanf("%d", &n5);
  21.  
  22. a=n5*n1;
  23. b=n4*n1;
  24. c=a*10+b;            
  25.  
  26. printf(" %d  \n", n1 );
  27. printf(" x %d%d \n", n4, n5 );
  28. printf("________ \n");
  29. printf(" %d   \n", a );
  30. printf("%d   \n", b);
  31. printf("________ \n");
  32. printf("%d", c);
  33.  
  34.  
  35. system("pause");
  36.  
  37. }
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  

Si os fijáis, he hecho que el programa pregunte al principio el primer número, pero que, al preguntar el segundo, lo pregunte separado, es decir, primera cifra, y segunda (el segundo número debe ser solo de dos cifras).

Mi problema es que no sé si se podrá hacer que, al escribir, por ejemplo "23" sepa que la primera cifra es 2, y la segunda; 3. Así creo que quedaría más completo y correcto, pero no sé si se puede hacer...

Muchas gracias.

Saludos.
38  Programación / Programación C/C++ / Programa de apuestas de un dado en: 7 Diciembre 2011, 18:51 pm
¡Hola!

Mi programa es el siguiente: tienes 100 euros, y apuestas una cantidad (como mínimo, 10 euros). Después, el ordenador piensa un número del 1 al 6, si introduces el correcto, lo que has apostado se multiplica por 6 y lo sumas a lo que tenías.

Ayer me estaba saliendo bien, pero estuve haciendo algunos cambios, y ahora no me sale la primera parte.

Ahora introduzco un número mayor que 10 y menos de 100 euros al principio, y me da como válido algunos resultados, otros no.

El programa es:

Código
  1. //Juego de apuestas que no sé por qué no funciona bien
  2.  
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5. #include<time.h>
  6.  
  7. int main (void){
  8.  
  9. int bolsa, apuesta, dado, apminima, opcion, n;
  10.  
  11.  srand(time(NULL));
  12.  
  13.  bolsa=100;
  14.  apminima=10;
  15.  
  16.  
  17.  printf("\a\nTienes %d euros. La apuesta minima son %d euros", bolsa,apminima);
  18.  printf ("\n\nEscriba su apuesta");
  19.  scanf("%d",&apuesta);
  20.  
  21.  do{
  22.  
  23.  do{
  24.  printf ("\nEscriba su apuesta");
  25.  scanf("%d",&apuesta);
  26.  }
  27.  while ((apminima>apuesta) || (apuesta>bolsa));
  28.  
  29.  bolsa=bolsa-apuesta;
  30.  
  31.  do{
  32.  printf("Escriba el numero por el que apuesta");
  33.  scanf("%d",&n);                  
  34.  }
  35.  while((n>6) || (n<1));
  36.  
  37.  dado=1+ rand()%6;
  38.  
  39.  if (dado==n) bolsa=bolsa+6*apuesta;
  40.  
  41.  printf("Apostaste por el numero %d y ha salido %d. Su bolsa tiene ahora %d euros", n,dado,bolsa);
  42.  
  43.  if(bolsa>=apminima){
  44.  
  45.  do{
  46.  printf("Escriba 1 si quiere seguir jugando o 0 si quiere abandonar la partida");
  47.  scanf("%d",&opcion);                
  48.  }
  49.  while ((opcion!=0)&&(opcion!=1));
  50.  
  51.  }
  52.  
  53. }
  54.  while((opcion==1)&&(bolsa>=apminima));
  55.  
  56.  printf("\nHasta la proxima");
  57.  printf("\n");
  58.  
  59.  
  60.   system("pause");
  61.  
  62.  
  63. }
  64.  

Muchas gracias.
39  Programación / Programación C/C++ / ¿Es posible intercambiar dos valores sin usar variable auxiliar? en: 13 Noviembre 2011, 19:54 pm
Hola.

Me han planteado dos preguntas. La primera la sé responder.

1. ¿Es posible intercambiar dos valores?

Y yo creo que sí, ya que haciendo lo siguiente en C, me intercambia los valores:

aux=a
a=b
b=aux

Por ejemplo, si a=4 y b=5; con esto será b=4 y a=5, por lo que he comprobado que esa respuesta es correcta.

Ahora viene la segunda pregunta, que es la que no sé...

2. ¿Es posible intercambiar dos valores sin utilizar una variable auxiliar?

En el caso anterior, utilicé la variable "aux", para poder intercambiar los valores de a y b, pero ahora el enunciado dice que no puedo utilizarla.

He probado a poner
a=b
b=a
,pero claro, al poner a=b, en b=a ya estoy diciendo que a=a, por lo que no es correcto.

También he probado con

((a=b) & (b=a)), pero tampoco...

Y bueno, ya en un papel tengo varias posibilidades más, pero son erróneas también...

¿Alguien podría explicarme si es posible?

Muchísimas gracias.
40  Programación / Programación C/C++ / Programa que calcula el número más próximo al primero en: 9 Noviembre 2011, 23:36 pm
¡Hola!

Estoy creando un pequeño programa, en el que introduzco cinco números, y debe calcularme el más próximo al primero. Por ejemplo, si pongo 5,9,6,3,1; sería 6 el número más próximo al primero. O si pongo 5,7,4,6,9; los números más próximos son dos; 6 y 4.

Pero llevo toda la tarde intentándolo, y nada...

El código que tengo por ahora es:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main (void){
  5.  
  6.    float n,n_mejor,d_mejor,a,d;
  7.  
  8.    printf("Introduce el primer numero");
  9.    scanf("%f",&a);
  10.  
  11.    printf("Introduce el segundo numero");
  12.    scanf("%f",&n);
  13.  
  14.  d_mejor=(n-a)*(n-a);
  15.  
  16.    printf("Introduce el tercer numero");
  17.    scanf("%f",&n);
  18.  
  19.  d_mejor=(n-a)*(n-a);
  20.  if(d<d_mejor){
  21.                d_mejor=d;
  22.                n_mejor=n;
  23.                }
  24.  
  25.  
  26.  
  27.    printf("Introduce el cuarto numero");
  28.    scanf("%f",&n);
  29.  
  30.    d_mejor=(n-a)*(n-a);
  31.  if(d<d_mejor){
  32.                d_mejor=d;
  33.                n_mejor=n;
  34.                }
  35.  
  36.    printf("Introduce el quinto numero");
  37.    scanf("%f",&n);
  38.  
  39.                 d_mejor=(n-a)*(n-a);
  40.  if(d<d_mejor){
  41.                d_mejor=d;
  42.                n_mejor=n;
  43.                }
  44.  
  45.  
  46.         printf("El numero mas cercano al primero es %f",n);
  47.  
  48.  
  49.    system("pause");
  50. }
  51.  
  52.  

Ah, d_mejor es la distancia menor entre "a" y cualquier otro número.

Ah ,y el programa me gustaría hacerlo con if, else, printf y scanf, para mejorar el uso de ellos e ir poco a poco aprendiendo programación.

Muchísimas gracias.
Páginas: 1 2 3 [4] 5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines