Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Luffy97

#11
Programación C/C++ / Error al comparar datos
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 (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>

void main() {
srand(time(NULL));
int r, res, i;
bool exit = false, ok;
char retry;
printf("JOC DE ENDEVINAR EL NUMERO\n\n");
do {
r = (rand() % 10) + 1;
i = 0;
do{
printf("Introdueix un numero (1-10): ");
/*-------------------------------------------*/
/*-------------------------------------------*/
/*-------------------------------------------*/
ok = scanf("%i", &res);
/*-------------------------------------------*/
/*-------------------------------------------*/
/*-------------------------------------------*/
while (getchar() != '\n');
if (ok && res >= 1 && res <= 10 ) {
if (res < r)
{
printf("Nº massa baix\n");
}
else if (res > r) {
printf("Nº massa alt\n");
}
else if (res == r) {
printf("Has encertat!\n");
exit = true;
}
i++;
}
else
{
printf("No has introduit un valor disponible\n");
}
}while (i < 12 && exit == false );
printf("Intents realitzats: %d\n", i);
exit = false;
do{
printf("Vols tornar a jugar? (Y/N): ");
scanf("%c", &retry);
retry = towlower(retry);
while (getchar() != '\n');
if (retry == 'n')
{
exit = true;
}
else if (retry == 'y')
{

}
else
{
printf("Introdueix una opcioo vàlida\n");
}
}while (retry != 'y' && retry != 'n');
} while (exit == false);
system("pause");
}



Gracias por su ayuda.
Un saludo.
#12
Programación C/C++ / Re: Problema con el código.
4 Noviembre 2015, 09:34 AM
RESUELTO
#13
Programación C/C++ / Problema con el código.
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 (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

void main() {
int hores, preu, total;
printf("Quantes hores has fet a la setmana? ");
scanf("%d", &hores);
printf("Quant cobres per hora");
scanf("%d", preu);
if (hores <= 40) {
total = hores*preu;
printf("El sou teu és de %d euros a la setmana\n", total);
}
else if (hores <= 48) {
total = (40 * preu) + ((hores - 40)*preu * 2);
printf("El teu sou és de %d euros a la setmana\n", total);
}
else if (hores > 48) {
(total = 40 * preu) + ((hores - 40)*preu * 2) + ((hores - 48)*preu * 2);
printf("El teu sou és de %d euros a la setmana\n", total);
}
}
#14
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 (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

void main() {
int hola;
char adios;
scanf("%d", &hola);
fflush(stdin);
scanf("%c", &adios);
system("pause");
}


Veréis que funciona sin problemas.
Saludos.
#15
Pues como dice no me funciona el fflush para vaciar el buffer del teclado. He buscado alterantivas como esta:
Código (cpp) [Seleccionar]
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.