Buenas tardes
Estoy haciendo el siguiente ejercicio con punteros pero al ejecutarlo me dice que la aplicacion se ha detenido. Estoy ejecutandolo con el dev++
Espero su ayuda, gracias
Este es el ejer
Se tomaron los datos provenientes de una placa de adquisición de datos. Esta placa detecta partículas emitidas codificadas de 0 a 15 e informa su nivel relativo de radiación. La información se entrega a la PC a través de los ports 300H y 301H de la manera que indica el dibujo.
El bit F valdrá 0 durante todo el experimento y se pondrá en 1 indicando su finalización. El bit S estará en 1 cada vez que se tiene un dato válido y pasará a 0 entre cada dato. Se asegura que los períodos en 1 y en 0 no son inferiores a 1 mseg.
En lugar de utilizar ports utilice un scanf [/code]
#include <stdio.h>
#include <conio.h>
struct NIVEL{
unsigned char F:1;
unsigned char S:1;
unsigned int R:10;
unsigned char C:4;
};
union TODO{
struct NIVEL N;
unsigned char A [1];};
struct DATO {
int acum;
int cont;
float prom;
};
main(){
char Y, Z;
union TODO T,*p;
struct DATO D [15],*q[15];
int i;
p=&T;
p->N.F=0;
printf (" %d", (p->N.F));
while (p->N.F==0){
p->A[0]=scanf ("%c", &Y);
if (p->N.S==1){
p->A[0]=scanf ("%c", &Z);
q[p->N.C]->acum=q[p->N.C]->acum+ (p->N.R);
q[p->N.C]->cont++;
}
}
for (i=0;i<15;i++){
q[i]->prom= q[i]->acum / q[i]->cont++;
}
//imprimo
for (i=0;i<15;i++){
printf("\n \n LA particula %d = %f" , q[i]->prom );
}
getch();
}