segunda-feira, 2 de maio de 2011

Implementação de Bússola !

include<stdio.h>
#include<stdlib.h>
struct sbussola
{
    unsigned int hora,minuto,angulo;
};
typedef struct sbussola sbus;
hora12(int h)
{
    if(h>=12)
        h=h-12;
    return h;
}
int abs( int x )
{
    if( x < 0 )
        return -x;
}
numeroT(unsigned int nteste)
{
    int ok=0;
    char strteste[3];
    do
        scanf("%u", &nteste);
    while((nteste>50)||(nteste<1));
    return nteste;
}
Ebussola (unsigned int nteste, sbus bussola[])
{
    int i;
    for(i=0; i<nteste; i++)
    {
        do
            scanf("%u %u", &bussola[i].hora,&bussola[i].minuto);
        while(((bussola[i].hora>23)||(bussola[i].hora<0))||((bussola[i].minuto>59)||(bussola[i].minuto<0)));
        bussola[i].hora= hora12(bussola[i].hora);
        bussola[i].angulo=abs(bussola[i].minuto-(bussola[i].hora*5));
        if(bussola[i].angulo>30)
            bussola[i].angulo=(60-bussola[i].angulo);
        bussola[i].angulo=(bussola[i].angulo*6);
    }
}
saida(unsigned int Nentrada,sbus angulos[])
{
    unsigned int j;
    for(j=0; j<Nentrada; j++)
        printf("%u\n",(angulos[j].angulo));
}
int main (void)
{
    unsigned int nteste;
    sbus bussola[50];
    nteste=numeroT(nteste);
    Ebussola(nteste,bussola);
    saida(nteste,bussola);
    return 0;
}

Nenhum comentário:

Postar um comentário