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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / Programación C/C++ / Error al comparar datos en: 3 Diciembre 2015, 10:09 am
Buenas a todos, el otro día hice un programa y tuve un problema... El programa trata de que pongas un numero aleatorio y que tu introduzcas un valor y te diga si lo has acertado o no. El problema viene en cuanto introduces el dato, Si pones numero superior a 10 o menor a 0 de error, si pones una letra también da error, pero si pones primero un numero seguido de una letra me lo acepta como numero. Y quiero solucionar esto de manera que si tu pones un numero que no sea valido tal sea seguido de letra o no te de error. No se si me he explicado bien... Aquí dejo el código:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <ctype.h>
  5.  
  6. void main() {
  7. srand(time(NULL));
  8. int r, res, i;
  9. bool exit = false, ok;
  10. char retry;
  11. printf("JOC DE ENDEVINAR EL NUMERO\n\n");
  12. do {
  13. r = (rand() % 10) + 1;
  14. i = 0;
  15. do{
  16. printf("Introdueix un numero (1-10): ");
  17. /*-------------------------------------------*/
  18. /*-------------------------------------------*/
  19. /*-------------------------------------------*/
  20. ok = scanf("%i", &res);
  21. /*-------------------------------------------*/
  22. /*-------------------------------------------*/
  23. /*-------------------------------------------*/
  24. while (getchar() != '\n');
  25. if (ok && res >= 1 && res <= 10 ) {
  26. if (res < r)
  27. {
  28. printf("Nº massa baix\n");
  29. }
  30. else if (res > r) {
  31. printf("Nº massa alt\n");
  32. }
  33. else if (res == r) {
  34. printf("Has encertat!\n");
  35. exit = true;
  36. }
  37. i++;
  38. }
  39. else
  40. {
  41. printf("No has introduit un valor disponible\n");
  42. }
  43. }while (i < 12 && exit == false );
  44. printf("Intents realitzats: %d\n", i);
  45. exit = false;
  46. do{
  47. printf("Vols tornar a jugar? (Y/N): ");
  48. scanf("%c", &retry);
  49. retry = towlower(retry);
  50. while (getchar() != '\n');
  51. if (retry == 'n')
  52. {
  53. exit = true;
  54. }
  55. else if (retry == 'y')
  56. {
  57.  
  58. }
  59. else
  60. {
  61. printf("Introdueix una opcioo vàlida\n");
  62. }
  63. }while (retry != 'y' && retry != 'n');
  64. } while (exit == false);
  65. system("pause");
  66. }


Gracias por su ayuda.
Un saludo.
12  Programación / Programación C/C++ / Re: Problema con el código. en: 4 Noviembre 2015, 09:34 am
RESUELTO
13  Programación / Programación C/C++ / Problema con el código. en: 4 Noviembre 2015, 09:21 am
Buenas, he echo este programa y el código me parece correcto però me da un error. El programa que e echo consiste en introducir la hora semanales, si son 40 el sueldo por hora es normal, si son 48 hora, 8 horas extra se pagan el doble (las extras) i a partir de más horas extras esas se pagan al triple. Aqui les adjunto el código que he realizado(Compliado en Visual Studio 2015). Un saludo.
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void main() {
  5. int hores, preu, total;
  6. printf("Quantes hores has fet a la setmana? ");
  7. scanf("%d", &hores);
  8. printf("Quant cobres per hora");
  9. scanf("%d", preu);
  10. if (hores <= 40) {
  11. total = hores*preu;
  12. printf("El sou teu és de %d euros a la setmana\n", total);
  13. }
  14. else if (hores <= 48) {
  15. total = (40 * preu) + ((hores - 40)*preu * 2);
  16. printf("El teu sou és de %d euros a la setmana\n", total);
  17. }
  18. else if (hores > 48) {
  19. (total = 40 * preu) + ((hores - 40)*preu * 2) + ((hores - 48)*preu * 2);
  20. printf("El teu sou és de %d euros a la setmana\n", total);
  21. }
  22. }
14  Programación / Programación C/C++ / Re: El Visual Studio me ignora el fflush(stdin). en: 29 Octubre 2015, 13:46 pm
El codigo es lo de menos, lo ejecuto en otros compiladores i funciona perfectamente. Es problema del Visual Studio. Me he puesto en contacto con su soporte i no me han ayudado. He echo preguntas en su soporte y no me dicen nada. ya no se que tengo que hacer. Mi version es la Visual Studio Enterprise 2015 descargada desde dream spark.
El còdigo és este:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void main() {
  5. int hola;
  6. char adios;
  7. scanf("%d", &hola);
  8. fflush(stdin);
  9. scanf("%c", &adios);
  10. system("pause");
  11. }

Veréis que funciona sin problemas.
Saludos.
15  Programación / Programación C/C++ / El Visual Studio me ignora el fflush(stdin). en: 29 Octubre 2015, 11:30 am
Pues como dice no me funciona el fflush para vaciar el buffer del teclado. He buscado alterantivas como esta:
Código
  1. while(getchar()!='\n');
.Pero me gustaria Saber porque no me fuciona y poder encontrar la solución. Por si es necesario uso WIndows 10. Un saludo.
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines