Usando medidas de comprimento

Publicado por euteste da silva (última atualização em 28/01/2011)

[ Hits: 5.472 ]

Download mcomprimento.c




Programa que faz transformação de uma unidade em uma unidade menor ou maior.

  



Esconder código-fonte

/*
 * Programa que trabalha com medidas de comprimento.
 * Como compilar:  gcc mcomprimento.c mcomprimento  
 * Data: 23/dez/2010 - Autor: foxbit3r
 *
 * Exemplo:    
 * Informe o comprimento em (km|hm|dam|m|dm|cm|mm)? 1m
 * Transformar em (km|hm|dam|m|dm|cm|mm)? cm
 * Resposta: 100.000000
 *
*/

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>

enum { km, hm, dam, m, dm, cm, mm } unidades;

int unidadeInformada( char  sUnid[] ) {

   if(strcmp(sUnid,"km")==0)
       return(km);
     else if(strcmp(sUnid,"hm")==0)
       return(hm);
     else if(strcmp(sUnid,"dam")==0)
       return(dam);
     else if(strcmp(sUnid,"m")==0)
       return(m);
     else if(strcmp(sUnid,"dm")==0)
       return(dm);
     else if(strcmp(sUnid,"cm")==0)
       return(cm);
     else if(strcmp(sUnid,"mm")==0)
       return(mm);
}

main() {


     char strm1[256], im1[256], sUnidade[3],*p;
     char sUnidade2[5];

     int i, valUnidade, valUnidade2, acumDez;
     double val;
     

     printf("Informe o comprimento em (km|hm|dam|m|dm|cm|mm)? ");
     gets(strm1);
     printf("Transformar em (km|hm|dam|m|dm|cm|mm)? ");
     gets(sUnidade2);

     valUnidade2 = unidadeInformada(sUnidade2); 
         
     i=0;
     p = strm1;
     while(isdigit(strm1[i])|| strm1[i]=='.'){
        i++;
        p++;
      }
   
     strncpy(im1,strm1,i);
     im1[i]='{FONTE}';
     val = atof(im1);
     strcpy(sUnidade,p);
     valUnidade = unidadeInformada(sUnidade); 

     acumDez = 1;
     if(valUnidade < valUnidade2) {
           valUnidade+=1;
           for(i = valUnidade; i <= valUnidade2; i++)
              acumDez *= 10;
           val = val * acumDez;
      }
    else {        
           valUnidade2+=1;
           for(i = valUnidade; i >= valUnidade2; i--)
              acumDez *= 10;
           val = val / acumDez;

   }
    printf("Resposta: %f\n",val);
}

Scripts recomendados

Chuva de janelas

Relógio com data e hora

[C] Parâmetros para printf

SIMULADOR DE DADOS DE RPG - Baseado em Vampiro A Máscara - Alea Jacta Est ver2.0.1

Tele Sena


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts