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 ... 81 82 83 84 85 86 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 ... 132
951  Programación / Programación C/C++ / Re: problema con un ciclo do while en: 9 Marzo 2013, 14:04 pm
Cambia de manual, cualquier manual que icentive el uso de conio y de void main denota la poca habilidad del autor.

El error que ocurre es algo frecuente en las entradas en C (menos mal que yo me pasé a C++). Lo normal es que los datos se lean enteros pero a veces se cuela basurilla... Prueba poner esto después del ultimo scanf:
..........................................
PD: Un consejo, yo no empezaría con C sino que me iría a C++... Hay muchas más funciones, herramientas y menos limitaciones... Además cuando ya lleves un buen nivel, podrás empezar con la programación orientada a objetos sin problemas.

Es como ser del Atlético de Madrid se es porque se es. Si es por eso y por la comodidad de tener más funciones "a mano" mejor te pasas a Pyttho, Ruby o el mismo basic. Sé que es más "duro" tener que implementar uno mismo ciertas funciones que da ya hechas el C++ pero eso "curte" como programador y como dije es como ser del Atleti.

Y en este caso la "basurilla" se elimina dejando simplemente un espacioen blanco en los scanf, tipo:


Código:
scanf(" %f",&si);

Citar
Por cierto no acabo de entender esto, no hace nada?:

Código
  1. scanf("%[^\n]",nom);


Es un formato del scanf, cosas del bendito C, que permite entrar una cadena con espacios en blanco, aunque debería indicar con un número la cantidad de carateres a tomar. Haría la misma función de esa manera que fgets.



Citar
Por otro lado:
Código
  1. gets(nom);

Mucho cuidado con gets, si insertas un texto mayor que la variable char (en este caso 30) podría dar lugar a errores extraños... De hecho no se recomienda usar esa función.

Es más aconsejable, como bien dice amchacon, el uso de fgets:

Código:
fgets(nom,31,stdin);

Saluditos!. ....

P.D: Además de conio te sobran las librerías math y windows.
952  Programación / Programación C/C++ / Re: Problema con un codigo que no funciona como debe hacerlo en: 8 Marzo 2013, 07:42 am
...............................................
lo que me estaba causando el problema era la libreria conio.h pero entonces si decidiera meter este codigo con Builder, podria usar conio.h y la funcion fflush(stdin) sin problemas?.

Cambiando la variable k por i, como te comentó rir, el programa runciona en principio O.K.

Lo que sucede es que en sentido estricto están de mas la librería conio y el uso de getch por no formar parte del estandar del C, así como el uso de la función fflush (stdin) por poder provocar resultados imprevistos. Más información en|Lo que no hay que hacer en C/C++. Nivel basico|

Saluditos!. ...
953  Programación / Programación C/C++ / Re: Problema con ejercicio de clase (Estructuras de selección) en: 7 Marzo 2013, 22:50 pm
Al final solo cambie los operadores como dijo naderST y el programa funciono perfectamente.

.........................


Creo que estas equivocado en cuanto a que ya funciona bien , fíjate en esta entrada:

Código
  1. Introduzca el dia, el mes y el anyo
  2. 6
  3. 6
  4. 2012
  5. Presione una tecla para continuar . . .

Ni correcto ni incorrecto ni nada.

Uno de los problemas básicos está que en lugar de || ha de ir && tanto en años como en días. Por ejemplo 32 es mayor que 1 con lo que cumple la condición si está en un ||. Y 1800 cumple con la condición al ser menor que 2050.

Además te falta "encadenar" los condicionales.Se puede comprobar primero el año y si cumple se comprueba el día y mes, que a su vez se puede simplificar.

Y claro falta la opción de "fecha incorrecta" y para no cambiártelo mucho tipo rir, magistral como siempre, pero que a veces está a "demasiada altura", quedaría algo como esto:


Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int dia,mes,anyo;
  6.    printf("Introduzca el dia, el mes y el anyo \n");
  7.    scanf("%d%d%d", &dia,&mes,&anyo);
  8.    if(anyo>=1900 && anyo<=2050){
  9.        if((dia>=1 && dia<=31 ) &&  (mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12))
  10.            printf("Fecha correcta \n");
  11.        else if((dia>=1 && dia<=30)  && mes!=2)
  12.            printf("Fecha correcta \n");
  13.        else if((dia>=1 && dia<=28)   && mes==2)
  14.            printf("Fecha correcta \n");
  15.        else
  16.            printf("Fecha incorrecta \n");
  17.    }
  18.    else printf("Fecha incorrecta \n");
  19.    system("PAUSE");
  20.    return 0;
  21. }
  22.  

Saluditos!
. ....

P.D: Mírate lo que te comentaron del switch,
954  Programación / Programación C/C++ / Re: Ayuda: con sustitución de funciones en: 7 Marzo 2013, 20:13 pm
Mmm, de acuerdo tu ganas :)

Desde el punto de vista de la memoria, creo que es más fácil situar un elemento nuevo que situar un array. Por eso lo decía.

Ahora, queda muy bonito ^^


El problema es que con tu código no se pordría ordenar, igual que con mi primer código. Pero como dijiste lo de lo complicado que sería crear un array de manera dinámica y sin tener de antemano la dimensión es por lo que he puesto este segundo código. Vamos que me "picastes", :laugh:

Saluditos campeón"!.
...
955  Programación / Programación C/C++ / Re: Ayuda: con sustitución de funciones en: 7 Marzo 2013, 19:29 pm
......................................
Te aventuro a que intentes crear en C el siguiente programa:

- Dado una lista de numeros terminados con un cero, calcula el numero mayor.

No puedes determinar el tamaño del array hasta que hayas terminado de guardar todos los números. Con array estáticos no puedes y con array dinámicos da bastantes problemas.


Aunque para calcular el mayor no hace falta punteros o arrays, para que no se diga que con arrays dinámicos hay grandes problemas:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <float.h>
  4.  
  5. int main(void){
  6.    int i=0,n=1;
  7.    float *num,mayor=-FLT_MAX ;
  8.    num = (float *) malloc (10*sizeof(float));
  9.    while (1) {
  10.        printf ("Introduzca el numero %d : ",i+1);
  11.        scanf("%f",&num[i]);
  12.        if (num[i]==0)
  13.            break;
  14.        if (i>= 9*n){
  15.            num = (float *) realloc (num,sizeof(float)*(i+10));
  16.            n++;
  17.            if ( num == NULL )  {
  18.                            printf("\nOut of memory!\n");
  19.                            return -1;
  20.            }
  21.        }
  22.        if (num [i]> mayor)
  23.            mayor = num[i];
  24.        i++;
  25.    }
  26.    printf ("\n\nEl mayor es: %g",mayor);
  27. return EXIT_SUCCESS;
  28. }
  29.  
  30.  

Saluditos!. ....

P.D: Pongo 10 para que se pueda "ver" que el realloc funciona.
956  Programación / Programación C/C++ / Re: ¿Por qué no me compila este código con Dev-c++? en: 7 Marzo 2013, 16:49 pm
Voy a probar el code block entonces..............

http://www.codeblocks.org/downloads/binaries#windows

Bájate el más "pesado" que incluye el editor y el compilador propiamente dicho.

Saluditos!. ...
957  Programación / Programación C/C++ / Re: Ayuda: con sustitución de funciones en: 7 Marzo 2013, 07:28 am
Otra forma de implementarlo sin vectores. Gracias a la magia de los punteros:

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4.  
  5. struct Eslabon
  6. {
  7.    int N;
  8.    Eslabon* Anterior;
  9. };
  10. int main()
  11. {
  12.    Eslabon* Numero = (Eslabon*)malloc(sizeof(Eslabon));
  13.    ...........................................................
  14. [/quote]

amchacon ¿has usado algún modo especial al compilar. porque me saltan múltiples errores y en modo no pedantic?:

|8|error: expected specifier-qualifier-list before 'Eslabon'|
||In function 'main':|ntitled38.
|12|error: 'Eslabon' undeclared (first use in this function)|
12|error: (Each undeclared identifier is reported only once|
|12|error: for each function it appears in.)|
|12|error: 'Numero' undeclared (first use in this function)|
|12|error: expected expression before ')' token|
|13|error: 'Buffer' undeclared (first use in this function)|
|28|error: expected expression before ')' token|
||=== Build finished: 8 errors, 0 warnings (0 minutes, 0 seconds) ===|

Y rn PellesC:

Building 0.obj.
\0.c(8): error #2001: Syntax error: expected '}' but found 'Eslabon'.
\0.c(9): error #2156: Unrecognized declaration.
\0.c(12): error #2048: Undeclared identifier 'Eslabon'.
0.c(12): error #2048: Undeclared identifier 'Numero'.
\0.c(12): error #2039: Illegal expression.
\0.c(12): error #2001: Syntax error: expected ')' but found 'malloc'.
\0.c(12): error #2088: Lvalue required.
\0.c(12): error #2001: Syntax error: expected ';' but found 'malloc'.
\0.c(13): error #2048: Undeclared identifier 'Buffer'.
\0.c(18): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(18): error #2168: Operands of '=' have incompatible types 'int' and 'void *'.
0.c(23): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(25): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(28): error #2039: Illegal expression.
C\0.c(28): error #2001: Syntax error: expected ')' but found 'malloc'.
\0.c(28): error #2001: Syntax error: expected ';' but found 'malloc'.
\0.c(29): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(31): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(35): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(37): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(37): error #2168: Operands of '!=' have incompatible types 'int' and 'void *'.
0.c(39): error #2112: Left operand of '->' has incompatible type 'int'.
\0.c(40): error #2112: Left operand of '->' has incompatible type 'int'.
*** Error code: 1 ***
Done.

Saluditos".
958  Programación / Programación C/C++ / Re: Ayuda: con sustitución de funciones en: 6 Marzo 2013, 22:35 pm
......................................................................................
 Te aventuro a que intentes crear en C el siguiente programa:

- Dado una lista de numeros terminados con un cero, calcula el numero mayor.


Pues así, por ejemplo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <float.h>
  4.  
  5. int main(void){
  6.    int i=0;
  7.    float num,mayor=-FLT_MAX ;
  8.    do {
  9.        printf ("Introduzca el numero %d : ",i+1);
  10.        scanf("%f",&num);
  11.        while (getchar()!='\n');
  12.        if (num > mayor)
  13.            mayor = num;
  14.        i++;
  15.    }while (num!=0);
  16.    printf ("\n\nEl mayor es: %g",mayor);
  17. return EXIT_SUCCESS;
  18. }
  19.  
  20.  

Saluditos!. ...
959  Programación / Programación C/C++ / Re: Flotantes aleatorios en: 6 Marzo 2013, 19:10 pm
||In function 'int main(int, char**)':|
C|14|error: 'uniform_real_distribution' was not declared in this scope|
|14|error: expected primary-expression before 'float'|
14|error: expected ';' before 'float'|
|17|error: 'dist' was not declared in this scope|
||=== Build finished: 4 errors, 0 warnings (0 minutes, 0 seconds) ===|
960  Programación / Programación C/C++ / Re: Flotantes aleatorios en: 6 Marzo 2013, 18:26 pm
Si estas en C++, en el estandar C++11 se ha incluido el modulo random, podrias usarlo como en este ejemplo:


Perdona 0xDani, ¿qué compilador usas? .Es que yo en el Code::Blocks he activado la opción de compatibilidad con C++11 y no me ejecuta el fichero. Gracias de antemano.

Saluditos!.
Páginas: 1 ... 81 82 83 84 85 86 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 ... 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines