Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

23/02/2011 #1


Programa en c. Problemas con resultados. Ayuda.
Buenas a todos, de nuevo.

Bien el siguiente programa muestra 10 letras por pantalla, y el usuario introduce la letra mostrada.

Se mide el Tiempo máximo y minimo de respuesta.
El tiempo medio.
El nº de fallos.

este es el codigo:

Código:
#include <stdio.h>
#include <stdlib.h>

int main (void)
{   
    int i;
    int fallo=0;
    int media=0;
    int tmax=0;
    int tmin=0;
    int antes;
    int despues;
    int aleatorio;
    char posible_caracter [4]="abcd";
    char letra_pulsada [10];
    int tiempo [10];
    
    printf ("Veamos sus reflejos\n");
    
    for (i=0; i<=10; i++)
    {  srand (time (NULL));
       aleatorio=rand()%4;
       printf ("%c", posible_caracter [aleatorio]);
       antes=time (NULL);
       scanf ("%c",&letra_pulsada [i]);
       despues= time(NULL);
          if (letra_pulsada [i]!=posible_caracter [aleatorio])
              fallo++;
       tiempo [i]= despues-antes; 
       media=media+ tiempo [i];
       
     }
     
     tiempo [0]=tmax;
     tiempo [0]=tmin;
     
     for (i=1; i<10; i++)
     {
          if (tiempo [i]>tmax)
          {
              tiempo [i]=tmax;      
                  
           }
          if (tiempo [i]<tmin)
          {
              tiempo [i]=tmin;       
                  
           } 
           
       
       
      }
      
      media=media/10;
      printf ("\nEl tiempo medio de respuesta es: %d", media);
      printf ("\nEl tiempo maximo es: %d\nEl tiempo minimo: %d", tmax, tmin);
      printf ("\nEl numero de fallos es: %d\n", fallo);
     
       system ("pause");
     
     
}
Utilizo Dev++

Pues hay dos problemas.

1 Son los Tiempos maximos y minimos. No sé por que muestran 0.

2 Se supone que debe mostrar 10 caracteres, pero muestra unos 6.

Me he dado cuenta que si no contesto, y solo pulso enter, entonces si muestra 10, ¿alguien sabe porque sucede esto?

Disculparme por escribir tantos mensajes

Muchas gracias.
23/02/2011 #2

Avatar de Unikfriend

Hi, es tarea?
23/02/2011 #3


si, me queda este.

Y otro que ya lo he descartado.

Con este ya apruebo.

un saludo
23/02/2011 #4

Avatar de Unikfriend

ok,

la funcion time regresa los segundos desde la medianoche las varibles
tiene que ser de tipo long, ademas a la hora de buscar el maximo y el minimo
tenias la instrucion al reves

tiempo [i]=tmax;

es
tmax = tiempo[i];





int main (void)
{
int i;
int fallo=0;
int aleatorio;
long media=0;
long tmax=0;
long tmin=0;
long antes;
long despues;
long tiempo [10];
char posible_caracter [5]="abcd";
char letra_pulsada [10];


printf ("Veamos sus reflejos\n");

for (i=0; i<10; i++)
{
srand (time (NULL));
aleatorio=rand()%4;
printf ("\n%i) %c :",i+1, posible_caracter [aleatorio]);
antes=time (NULL);

scanf (" %c",&letra_pulsada [i]);
despues=time(NULL);

if (letra_pulsada [i]!=posible_caracter [aleatorio]) fallo++;
tiempo [i]= despues-antes;
media=media+ tiempo [i];

}

tmax = tiempo [0];
tmin = tiempo [0];

for (i=1; i<10; i++)
{
if (tiempo [i]>tmax)tmax = tiempo [i];
if (tiempo [i]<tmin)tmin = tiempo [i];
}
media=media/10;
printf ("\nEl tiempo medio de respuesta es: %d", media);
printf ("\nEl tiempo maximo es: %d\nEl tiempo minimo: %d", tmax, tmin);
printf ("\nEl numero de fallos es: %d\n", fallo);

system ("pause");


}

a mi me marco error en esta linea

char posible_caracter [4]="abcd";

la tube cambiar por

char posible_caracter [5]="abcd";



No crees tantos temas relacionados con lo mismo por que te censuran.
23/02/2011 #5

Avatar de Dr. Zoidberg

Unikfriend dijo: Ver Mensaje
a mi me marco error en esta linea

char posible_caracter [4]="abcd";

la tube cambiar por

char posible_caracter [5]="abcd";
Claro que te va a dar error!
"abcd" son cuatro letras + el terminador nulo del string = 5 caracteres.

Unikfriend dijo: Ver Mensaje
No crees tantos temas relacionados con lo mismo por que te censuran.
No te censuran...te MODERAN
23/02/2011 #6


Si algún dia recibo el titulo y me coloco en un puesto de trabajo, te deberé parte de mi sueldo... jeje

Muchas gracias por todo, me has ayudado muchisimo...

Disculparme por abrir varios temas, no lo volvere a hacer.

Un saludo
23/02/2011 #7

Avatar de Unikfriend

Donde estas estudiando?
23/02/2011 #8


En España, guadalajara. Es un ciclo de grado superior de desarrollo de productos electronicos.
23/02/2011 #9

Avatar de Unikfriend

Yo pensaba que Guadalajara en Mexico,jijii
te estas desvelando entonces...
23/02/2011 #10


Si jeje por eso te puse España, siempre me quedo hasta tarde, para terminar las cosillas.

Un saludo
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.