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

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 ... 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 [127] 128 129 130 131 132
1261  Programación / Programación C/C++ / Re: RETOS C++ en: 2 Octubre 2012, 14:46 pm
Tienes el problema que si introduzco cuatro números negativos el mayor es, como no, el cero ... que no forma parte de los cuatro números. Tendrías que usar la libreria limits y asignarle a menorel valor de entero que es int_MIN o algo así.
Pero insisto en algo que postee anteriormente, no se está haciendo lo que dice textualmente el enunciado:
3- Un programa que diga el numero mas grande. El usuario ha de insertar 4 numeros separados por un espacio.
Este código sí hace lo que se pide:
Código
  1. #include <iostream>
  2. #include <cstdio>
  3. using namespace std;
  4. main()
  5. {
  6.    int a,b,c,d,mayor;
  7.    char ch,cad[100]/*= "17 32 15 27"*/;
  8.    cout <<"Introduzca cuatro numeros separados por un espacio:"<< endl;
  9.    gets (cad);
  10.    sscanf(cad, "%d%c%d%c%d%c%d",&a, &ch ,&b,&ch, &c,&ch, &d  );
  11.    if ((a= a>b ? a:b)>(c= c>d ? c:d))
  12.        cout << a << endl;
  13.    else
  14.        cout << "mayor = " << c << endl;
  15.    return 0;
  16. }
1262  Programación / Programación C/C++ / Re: programa muestra resultado que no deberia en: 2 Octubre 2012, 14:01 pm
el código original( el primero que postee) al ingresar todos los datos en cero( eso incluye la distancia) que al ser dividido entre cero, si daba el rotulo de que no se podía realizar, pero en el resultado mostraba un valor algo de "x10e9..." ó "x10e-9..." 
Lo que sucede es que la variable no está inicializada, por lo que contendrá basura. Prueba a inicializar con un valor cocreto, por ejemplo "d=0" y veras la diferencia.
1263  Programación / Programación C/C++ / Re: duda c++ en: 2 Octubre 2012, 13:47 pm
hacer que cuando se le pida un numero al usuario para acceder a un menu no tenga que escribirlo, si no solo pulsarlo
Una forma es mediante el uso de la función getch de la librería coni.h, incluida ya en Cod::Blocks o Dev.C++ -no hablo de la de borland-. NO es la mejor o más portable para otros compiladores, pero hace lo que quieres
Código
  1. #include <iostream>
  2. #include<conio.h>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.    cout<<"pulse 1 para acceder a menu1"<<endl;
  8.    cout<<"pulse 2 para acceder a menu2"<<endl;
  9.    switch(getch ())
  10.        {
  11.            case '1': cout<<"ha accedido al menu 1"<<endl;
  12.            break;
  13.            case '2': cout<<"ha accedido al menu 2"<<endl;
  14.            break;
  15.        }
  16.    return 0;
  17. }
  18.  
Yo también quedo a la espera de otras soluciones sin getch.
Saludos!
1264  Programación / Programación C/C++ / Re: Ayuda con un problema. en: 1 Octubre 2012, 22:56 pm
Se lee de una fecha el numero del día (1 a 31) y el numero del mes (1 a 12). Informar la fecha del día siguiente del modo: numero del día y nombre del mes. Suponiendo Febrero siempre con 28 días.

Como no es plan de dártelo todo hecho, aquí tienes un código básico que hace lo que quieres. No creo que tengas mayor problema en pasarlo a C++, printf y scanf por cout y cin, y poco más. Deberías "enriquecerlo" para cuando entren número de día o de mes fuera de rango. Es lo que me ha salido a bote pronto, supongo que si lo piensas un poco más podrás abreviarlo:
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int i,dia,mes_;
  6.    char mes [12][10]={"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"};
  7.  
  8.    printf("DIA =   ");scanf ("%d%*c",&dia);
  9.    printf("MES =   ");scanf ("%d%*c",&i);
  10.    if (dia==31 && (i == 1 ||  i ==3 || i ==5 || i ==7 || i ==8 || i ==10 ) )
  11.        printf("1 / %s\n" ,mes [i]);
  12.    else if (dia==30 && (i == 4 || i ==6 || i ==9 || i ==11  ) )
  13.        printf("1 / %s\n" ,mes [i]);
  14.    else if (dia==31 && i == 12  )
  15.        printf("1 / %s\n" ,mes [0]);
  16.    else if (dia==28 && i == 2  )
  17.        printf("1 / %s\n" ,mes [2]);
  18.    else
  19.        printf("%d / %s\n",dia+1,mes [i-1]);
  20.    return 0;
  21. }
1265  Programación / Programación C/C++ / Re: RETOS C++ en: 1 Octubre 2012, 20:33 pm
Sin usar  max con un solo if basta para comparar los 4 numeros, seguramente hay otras formas pero esta es una:
Código
  1. #include <iostream>
  2.    using namespace std;
  3.  
  4. int main ()
  5. {
  6.    int a,b,c,d;
  7.    cin >> a >> b >> c >> d;
  8.    if ((a= a>b ? a:b)>(c= c>d ? c:d))
  9.        cout << a << endl;
  10.    else
  11.        cout << c << endl;
  12. }
  13.  
1266  Programación / Programación C/C++ / Re: problema con read() y open() C en: 1 Octubre 2012, 15:52 pm
Cita de: soyloqbuskas link=topic=372382.msg1788640#msg1788640

Y otra cosa mas, ¿como puedo calcular el tamaño del fichero? porque he puesto fileSize=100 porque no sabia calcularlo xD
Citar
Prueba con:
Código
  1. fseek(fichero, 0L, SEEK_END);
  2.    printf("prueba.txt ocupa %d bytes", ftell(fichero));
Saludos!.
1267  Programación / Programación C/C++ / Re: ayuda en: 1 Octubre 2012, 14:37 pm
escribir un programa que que cifre un mensaje usando rot13
Como pareces que andas muy perdido -SIEMPRE HAY QUE SUBIR ALGO DEL CÓDIGO PARA AYUDAR-, por esta vez te echo una mano con un código, para que tengas por dónde empezar::
Código
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3. #include <string.h>
  4. int main (void)
  5. {
  6.    int i;
  7.    char cadena []="Como se puede distinguir a un extrovertido de un "
  8.    "introvertido en la NSA? Ra ybf nfprafberf,"
  9.    "ry rkgebiregvqb zven ybf mncngbf qr ybf BGEBF gvcbf.";
  10.    for (i=0;i<=strlen (cadena);i++)
  11.        printf ("%c",cadena[i]);
  12.    puts("\n");
  13.    for (i=0;i<=strlen (cadena);i++)
  14.        {
  15.            if (cadena [i]>'m' && cadena [i]<='z' )   cadena [i]-=13;
  16.            else if (cadena [i]>='a' && cadena [i]<='m' )  cadena [i]+=13;
  17.            else if (cadena [i]>='A' && cadena [i]<='M' )  cadena [i]+=13;
  18.            else if (cadena [i]>='M' && cadena [i]<='Z' )  cadena [i]-=13;
  19.            printf ("%c",cadena[i]);
  20.        }
  21.    return 0;
  22. }
No es la forma más óptima, pero lo que te dije, para que empieces.
1268  Programación / Programación C/C++ / Re: Duda con ejercicio de clase en: 1 Octubre 2012, 00:29 am
....era un pequeño programa que contara las letras "z" y "Z" de un archivo llamado prueba.txt....

Citar
Y por qué no e y E o s y S ...... para no alterar el código mucho, entro las letras a contar en los "define", así si te pide otro juego de letras sólo tendrás que cambiar dichos define. Para que veas que funciona te "creo"y escribo  el fichero con dos líneas -los "fputs"-. Espero te sea de ayuda:

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define letra  'o'
  4. #define LETRA  'O'
  5. int main()
  6. {
  7.    FILE *fichero;
  8.    int nletra=0;
  9.    char c;
  10.    fichero=fopen("prueba.txt","w");
  11.    if(fichero==NULL)
  12.        {
  13.            printf("error al buscar el archivo\n");
  14.            return 1;
  15.        }
  16.    fputs("Esto es una linea\n", fichero);
  17.    fputs("Esto es otra y estO es continuacion de lo anterior", fichero);
  18.    fclose (fichero);
  19.    fichero=fopen("prueba.txt","r");
  20.    do {
  21.      c = getc (fichero);
  22.      if (c == letra || c == LETRA) nletra++;
  23.    } while (c != EOF);
  24.    fclose (fichero);
  25.    printf("Numero de '%c' y '%c': %d",letra,LETRA, nletra);
  26.    printf ("\nPresiona ENTER para salir:");
  27.    while (getchar()!='\n')
  28.            ;
  29.    return 0;
  30. }
1269  Programación / Programación C/C++ / Re: ¿ Como utilizar %n ? en: 30 Septiembre 2012, 17:19 pm
Pues como había dicho, acabo de compilar el programa con:
Lcc-win32
Pelles C
Dev-C++ (utiliza MinGW)
CygMing (la version 3.X y 4.X de gcc para Cygwin)

Y con todos ellos el resultado es el esperado:
Código:
3.141590 3490
The above line contains 13 characters.
Citar
Me da que "deseas" machacar mis respuestas, querido amigo. Aunque resulte redundante, el susodicho programa no hace lo que se espera de él, en Dev-C++ ,Code::Blocks y compañía, al menos en Windows7, y no sólo lo digo yo, ahí están sinatra y Caster para corroborrarlo. Por mucho que forme parte del C antidiluviano. No me eches a mí la culpa de que no funcione, sólo constato un hecho y pongo en pro que con Pelles C for Windows si "rula" (=funciona, para que no me preguntes otra vez que significa, lo que me lleva a pensar que no eres muy cinéfilo- ).
Que a tí te funciona ... ¡me alegro por tí !, pero a otros no y yo lo que hago es "informarles de por qué: el compilador, el IDE, el sistema operativo o los astros!, vaya usted a saber.
Como casi siempre te conformas con "tirar" una respuesta o comentario sin aportar solución. Se te gradecería que nos digas por qué a nosotros no nos funciona, al menos bajo W7.

P:DMe alegra qu a tí te funcione bajo todos esos programas, yo me tengo que con formar con Pelles C.
Un saludo.

1270  Programación / Programación C/C++ / Re: Duda con juego que genera numeros aleatorios en: 30 Septiembre 2012, 16:32 pm
La función "srand" requiere de un argumento, llamarla como indica leosansan (sin argumento) es un error.
¿¿¿....???      cPor qué no pruebas a correr el código que expuse?.¿No será que "quieres decir otra cosa?, porque decir que no "funciona" cuando sí funciona es erróneo. Otra cosa es que quieras decir que no sirve para generar números aleatorios diferentes cada vez que le llames. Pero te recuerdo que la duda era otra, ésta en concreto:
Respuesta a:
Citar
EDITO 2: Me surge otra pregunta, utilizar srand() sin semilla y srand() pero con una semilla que no cambie, es realmente lo mismo no?

SI, puedes ponerla sin semilla así "srand()" o con semilla, así  "srand(15)" y en ambos casos se genera el mismo juego de números aleatorios.
Un saludo
Páginas: 1 ... 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 [127] 128 129 130 131 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines