Bienvenido(a), Visitante. Favor de ingresar o registrarse.

Ingresar con nombre de usuario, contraseña y duración de la sesión

Foros del Club

Páginas: [1]   Ir Abajo
  Enviar tema  |  Imprimir  
Autor Tema: Error Fatal  (Leído 428 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Razzo
Wizard
****

Prestigio: 0
Desconectado Desconectado

Mensajes: 6


« en: 27/06/2007, 11:29:36 »

 No sale...

bueno este iconito lo puse porque justamente es lo que me esta pasando, aca les pongo una parte de la codificacion
si sirve, estoy usando el borland c/c++ 5.02. cuando ingreso el estado de aprobacion me tira un error de esos que te sale
una ventanita que dice "Fault Acces Violation" y no se que mas, y a continuacion una tabla con numeros en hexa.

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

void main()
{int dni,npp,nsp,ca,contp,conta,contr,contau,conttpa,conttpr,a,dnimax,dnimax2,contx,b,c,n1,n2,n3,n4;
    float max,max2,prom;
    char nm[19],tp;

    clrscr();

    ca=0;
    conttpa=0;
    conttpr=0;
    contp=0;
    conta=0;
    contr=0;
    contau=0;
    tp=0;
    max=0;
    dnimax=0;
    contx=0;
    max2=0;
    dnimax2=0;
    n1=0;
    n2=0;
    n3=0;
    n4=0;

 
         printf("Ingrese el nombre de la materia\n");
    scanf("%s",nm);
printf("Ingrese el numero de DNI del alumno\n");
    scanf("%d",&dni);


          {while(dni!=0)
    {ca++;
            printf("Ingrese el estado de aprobacion del Trabajo Practico\nA: Aprobado R:Reprobado\n");
              scanf("%s",tp);
      do{a=1;
                  printf("Error:\nIngrese nuevamente el estado de aprobacion del Trabajo Practico\nA: Aprobado R:Reprobado\n");
                  scanf("%c",tp);
                 }while(tp!='a' && tp!='r');
               


tambien probe de mandarle en vez del do/while, poner un while solamente, como el que esta aca abajo:

Código:
while(tp=='a' || tp=='r')
                  {printf("Error:\nIngrese nuevamente el estado de aprobacion del Trabajo Practico\nA: Aprobado R:Reprobado\n");
                  scanf("%s",tp);
                  }

tambien probe en vez de que las variable "tp" sea un string, que sea un char solamente (es decir "%c" en vez de "%s", pero ni siquiera me deja escribir, tira error antes de poder escribir). y despues del char poner la funcion "fflush(stdin)" que segun el profesor es para que el borland no saltee la siguiente entrada.


alguna idea de como solucionar esto??



desde ya muchisimas gracias!!
« Última modificación: 27/06/2007, 11:51:44 por Razzo » En línea
CID
Administrador
Legend
*****

Prestigio: 22
Desconectado Desconectado

Sexo: Masculino
Estudiante de: Arte de la informática
Título universitario: Programador
Profesión: Desarrollador
Mensajes: 1136



WWW
Lenguajes:
Varios
Bases de datos:
Varios
« Respuesta #1 en: 27/06/2007, 13:24:57 »

Probá con esto:
Código:
do{
        printf("\nIngrese nuevamente el estado de aprobacion del Trabajo Practico\nA: Aprobado R:Reprobado\n");
        fflush(stdin);
        scanf("%c",&tp);
    }while(tp!='a' && tp!='r');


printf("Caracter: %c", tp);
getch();

tp es de tipo char, y scanf necesita la dirección donde se encuentra esa variable para escribir alli la entrada del usuario.

Saludos.
En línea

Razzo
Wizard
****

Prestigio: 0
Desconectado Desconectado

Mensajes: 6


« Respuesta #2 en: 29/06/2007, 11:32:11 »

Ah no...no te puedo creer que no me di cuenta de eso.  rey
Te agradezco muchisimo, todavia no caigo en que era esa boludez que se me paso por alto!  No sale...


gracias!!

En línea
CID
Administrador
Legend
*****

Prestigio: 22
Desconectado Desconectado

Sexo: Masculino
Estudiante de: Arte de la informática
Título universitario: Programador
Profesión: Desarrollador
Mensajes: 1136



WWW
Lenguajes:
Varios
Bases de datos:
Varios
« Respuesta #3 en: 04/07/2007, 23:10:22 »

Me alegro que hayas podido resolverlo, saludos!
En línea

Foros del Club
   

 En línea
Páginas: [1]   Ir Arriba
  Enviar tema  |  Imprimir  
 
Ir a: