Usando medidas de comprimento

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

[ Hits: 5.298 ]

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

POTENCIA.c em linguagem c

Função simples de criptografia em um vetor

Ler N números e ver qual é o maior

SIMULADOR DE DADOS DE RPG - BASEADO EM VAMPIRO A MÁSCARA

Binário para Decimal, Hexa, Char


  

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