DAVID J. Malan: Como probablemente sabe, temperaturas son medidos mediante diferentes escalas en diferentes partes do mundo. Por exemplo, 212 graos Fahrenheit é 100 graos Celsius e 32 graos Fahrenheit é de 0 graos Celsius. Non sería bo se tivésemos un ordenador programa que nos permitiu converter de, digamos, Fahrenheit para Celsius? Así, podemos escribir este programa. Imos primeiro comezar por inclúen cs50.h, de xeito que podemos utilizar unha función chamada obter float, que, como get int, recibe unha número de usuario, pero este tempo un número de punto flotante - un cun punto decimal. Imos incluír io.h defecto para que poidamos ter acceso a funcións como impresión f. E imos tamén declarar principal do xeito habitual. Imos preto solicitar ó usuario unha temperatura en graos Celsius. Imos agora comezar realmente que a temperatura do usuario, en primeiro lugar por declarar unha variable chamada f do tipo float. Un flotador, de novo, o que significa que unha variable almacena un valor de punto flotante, un con un punto decimal. Imos asignar-lle a volta valor do get float. E entón, imos facer un pouco de aritmética nel, primeiro declarando outro flotador chamado C para Celsius e almacenar en C a resultado dalgunha aritmética común. 5,0 dividido por 9,0 veces F menos 32,0. Imos agora imprimir o resultado deste cálculo. por cento f - significando un espazo reservado para valor de punto flotante - coma C para imprimir a temperatura en graos Celsius. Imos salvar o meu final. Compilar con F para C. Executa o programa con punto barra F a C. E imos tratar aqueles comúns temperaturas. 212 graos en Fahrenheit é de 100 graos Celsius. 32 graos en Fahrenheit é 0 graos en Celsius. Agora imos refinar este programa un pouco pouco a impresión de que non tan moitos 0 do despois de que casa decimal. Para iso, eu vou voltar á liña 11. E no canto de só especificar por cento f, Vou indicar en vez, por exemplo, 0,1 m, informando impresión que eu só f quere imprimir un valor de punto flotante para un valor despois do punto decimal. Imos gardar de novo o meu programa. Recopila-lo co make F para C. Entón realizar de novo con punto barra F a C. E imos tentar de novo con, digamos, 212, o que me dá 100,0. Agora paga a pena notar que eu fixen algo moi deliberadamente na liña 9. Observe como escribín 5 é de 5,0, 9 como 9.0, e ata 32 como 32,0. Así, os dous primeiros de tales valores foron deliberadamente escollido para ser valores de punto flotante, e non só porque de coherencia co resto do meu programa - que implica claramente flotante valores de punto - senón porque parece que C, Se dividir un int doutra int, o obtendo resposta que vai conseguir é si un int, aínda que só sexa ter que xogar fora todo despois do punto decimal. Noutras palabras, se eu cambiar ese 5.0 para 5 ou este 9,0-9 e logo salva meu programa, recompilar con make F para C, e entón re-executar-lo con barra punto F a C e escriba unha entrada como de 212, ter en conta que a resposta que eu vou se ese tempo é realmente moi mal. 0,0 non é o grao correcto en Celsius como Fahrenheit 212. Ben, o que está a suceder? Ben, en liña 9, xa que 5 é agora un enteiro e por 9 é agora un enteiro, o resultado matematicamente debe ser 0,5555 e así por diante. Pero xa que o resultado, segundo a Normas de C, ten que ser un int, que 0,5555 é xogado fóra, deixando connosco con só 0. Entón, ao final, acabo multiplicando bastante accidentalmente 0 veces f menos 32.0, que é non importa o que sempre me vai dar 0. Polo tanto, lembre-se, en calquera momento mediante valores de punto flotante en proximidade Ints, pode non necesariamente obter a resposta que espera. E por iso teña coidado de usar, como eu fixen no valores primeiro caso de coma flotante todo para evitar tales problemas.