#include<stdio.h>
#include<string.h>
#include<stdlib.h>
float c2f(float);
float f2c(float);
float Fahrenheit,Celsius;
int main(int argc, char *argv[])
{
/**
* Check for the expected number of arguments (3)
* (0) program name
* (1) flag
* (2) temperature
*/
if (argc!=3)
{
printf("Incorrect number of arguments\n"); }
{
// convert the string into a floating number
char *check;
float Celsius
= strtod(argv
[2], &check
);
if (Celsius < -273.15)
{
printf("ERROR! The temperature is below absolute zero."); }
// process from celsius to fahrenheit
Fahrenheit = c2f(Celsius);
printf("%5.2f°C = %5.2f°F\n",Celsius
, Fahrenheit
); }
else if (!strcmp(argv
[1], "toC")) {
// convert the string into a floating number
char *check;
float Fahrenheit
= strtod(argv
[2], &check
);
// process from fahrenheit to celsius
Celsius = f2c(Fahrenheit);
printf("%5.2f°F = %5.2f°C\n", Fahrenheit
, Celsius
); }
else
{
}
} // main
float c2f(float c)
{
return 32 + (c * (180.0 / 100.0));
}
float f2c(float f)
{
return (100.0 / 180.0) * (f - 32);
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CiNpbmNsdWRlPHN0ZGxpYi5oPgoKZmxvYXQgYzJmKGZsb2F0KTsKZmxvYXQgZjJjKGZsb2F0KTsKCmZsb2F0IEZhaHJlbmhlaXQsQ2Vsc2l1czsKCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKCi8qKiAKICogQ2hlY2sgZm9yIHRoZSBleHBlY3RlZCBudW1iZXIgb2YgYXJndW1lbnRzICgzKQogKiAoMCkgcHJvZ3JhbSBuYW1lCiAqICgxKSBmbGFnCiAqICgyKSB0ZW1wZXJhdHVyZQogKi8KaWYgKGFyZ2MhPTMpCnsKICAgIHByaW50ZigiSW5jb3JyZWN0IG51bWJlciBvZiBhcmd1bWVudHNcbiIpOwogICAgZXhpdCgwKTsKfQoKaWYgKCFzdHJjbXAoYXJndlsxXSwgInRvRiIpKQp7CiAgIC8vIGNvbnZlcnQgdGhlIHN0cmluZyBpbnRvIGEgZmxvYXRpbmcgbnVtYmVyCiAgIGNoYXIgKmNoZWNrOwogICBmbG9hdCBDZWxzaXVzID0gc3RydG9kKGFyZ3ZbMl0sICZjaGVjayk7CgogICAgaWYgKENlbHNpdXMgPCAtMjczLjE1KQogICB7CiAgIHByaW50ZigiRVJST1IhIFRoZSB0ZW1wZXJhdHVyZSBpcyBiZWxvdyBhYnNvbHV0ZSB6ZXJvLiIpOwogICB9CgovLyBwcm9jZXNzIGZyb20gY2Vsc2l1cyB0byBmYWhyZW5oZWl0CiAgIEZhaHJlbmhlaXQgPSBjMmYoQ2Vsc2l1cyk7CiAgIHByaW50ZigiJTUuMmbCsEMgPSAlNS4yZsKwRlxuIixDZWxzaXVzLCBGYWhyZW5oZWl0KTsKfSAgIAplbHNlIGlmICghc3RyY21wKGFyZ3ZbMV0sICJ0b0MiKSkKewogICAvLyBjb252ZXJ0IHRoZSBzdHJpbmcgaW50byBhIGZsb2F0aW5nIG51bWJlcgogICBjaGFyICpjaGVjazsKICAgZmxvYXQgRmFocmVuaGVpdCA9IHN0cnRvZChhcmd2WzJdLCAmY2hlY2spOwoKICAgLy8gcHJvY2VzcyBmcm9tIGZhaHJlbmhlaXQgdG8gY2Vsc2l1cwogICBDZWxzaXVzID0gZjJjKEZhaHJlbmhlaXQpOwogICBwcmludGYoIiU1LjJmwrBGID0gJTUuMmbCsENcbiIsIEZhaHJlbmhlaXQsIENlbHNpdXMpOwp9CgplbHNlIAp7CgogICBwcmludGYoIkludmFsaWQgZmxhZ1xuIik7Cn0KfSAvLyBtYWluCgoKZmxvYXQgYzJmKGZsb2F0IGMpCnsKICByZXR1cm4gMzIgKyAoYyAqICgxODAuMCAvIDEwMC4wKSk7IAp9IAoKZmxvYXQgZjJjKGZsb2F0IGYpCnsKICByZXR1cm4gKDEwMC4wIC8gMTgwLjApICogKGYgLSAzMik7Cn0=