Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

var sc = bufio.NewScanner(os.Stdin)

func read() string {
	sc.Scan()
	return sc.Text()
}

func main() {
	sc.Split(bufio.ScanLines)
	max := 0.0
	min := 1000000.0
	for sc.Scan() {
		n, _ := strconv.ParseFloat(sc.Text(), 64)
		if max < n {
			max = n
		}
		if min > n {
			min = n
		}
	}
	fmt.Println(max - min)
}

C++: #include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <functional>
#include <iostream>
#include <map>
#include <set>
using namespace std;
typedef pair<int,int> P;
#define pu push
#define pb push_back
#define mp make_pair
#define eps 1e-7
#define INF 2000000000
int main()
{
	double max=-1,min=INF,tmp;
	while(scanf("%lf",&tmp)!=EOF)
	{
		if(tmp>=max)max=tmp;
		if(tmp<=min)min=tmp;
	}
	cout << max-min << endl;
	return 0;
}

C++: //#define _GRIBCXX_DEBUG
#include <algorithm>
#include <cctype>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <functional>
#include <iostream>
#include <iomanip>
#include <list>
#include <map>
#include <memory>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <utility>
#include <vector>
using namespace std;


// ?????¬???????????¬??????
#pragma region MACRO
#define P(x) cout << (x) << endl
#define p(x) cout << (x)
#define PED cout << "\n"
#define rep(i,n) for(int i=0; i<(int)n; ++i)
#define REP(i,x,n) for(int i=x; i<(int)n; ++i)
#define repi(i,n) for(int i=0; i<=(int)n; ++i)
#define REPI(i,x,n) for(int i=x; i<=(int)n; ++i)
#define ILP while(true)
#define FOR(i,c) for(__typeof((c).begin())!=(c).begin(); i!=(c).end(); ++i)
#define ALL(c) (c).begin(), (c).end()
#define mp make_pair
#pragma endregion

// ???
#pragma region TYPE_DEF
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<string, string> pss;
typedef pair<string, int> psi;
typedef pair<int, string> pis;
typedef vector<int> vi;
typedef vector<double> vd;
typedef vector<long> vl;
typedef vector<long long> vll;
typedef vector<string> vs;
#pragma endregion

// Effective std
#pragma region ESTD
template<typename C, typename T>
constexpr int count(C& c, T t) { return count(ALL(c), t); }
template<typename C, typename F>
constexpr int count_if(C& c, F f) { return count_if(ALL(c), f); }
template<typename C, typename T>
void erase(C& c, T t) { remove(ALL(c), t), c.end(); }
template<typename C>
void remove(vector<C>& c, unsigned int index) { c.erase(c.begin()+index); }
template<typename C, typename T, typename U>
constexpr void replace(C& c, T t, U u) { replace(ALL(c), t, u); }
template<typename C, typename F, typename U>
constexpr void replace_if(C& c, F f, U u) { (ALL(c), f, u); }
template<typename C>
constexpr void reverse(C& c) { reverse(ALL(c)); }
template<typename C>
constexpr void sort(C& c) { sort(ALL(c)); }
template<typename C, typename Pred>
constexpr void sort(C& c, Pred p) { sort(ALL(c), p); }
#pragma endregion

// ?????°
#pragma region CONST_VAL
#define PI (2*acos(0.0))
#define EPS (1e-9)
#define MOD (int)(1e9+7)
#pragma endregion


int main()
{
    vd v;
    double h;
    while(cin>>h) {
        v.push_back(h);
    }

    sort(v);
    P(v[v.size()-1]-v[0]);
    return 0;
}

C++: #include <iostream>

using namespace std;

int main() {
    double h;
    double high = 0, low = 1e+9;
    while (cin >> h) {
        high = max(high, h);
        low = min(low, h);
    }
    cout << high - low << endl;
    return 0;
}

C++: #include <iostream>
#include <algorithm>
#include <queue>
#include <stack>
#include <cmath>
#include <cstdio>

using namespace std;

int main() {
	double height = 0, maxNum=0.0, minNum=DBL_MAX;
	while(cin>>height){
		if(cin.eof()) break;
		maxNum = max(maxNum, height);
		minNum = min(minNum, height);
	}
	printf("%.1f\n", maxNum-minNum);
	return 0;

}

C++: #include <iostream>
using namespace std;

int main(){
	bool first = true;
	double input, high = 0, low = 0;

	while ( cin >> input ){
		if ( first ){
			high = low = input;
			first = false;
		}else{
			if ( input > high ){
				high = input;
			}else if ( input < low ){
				low = input;
			}
		}
	}

	input = high - low;
	cout << input << endl;

	return 0;
}

C++: 
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <cassert>
#include <iostream>
#include <cctype>
#include <sstream>
#include <string>
#include <list>
#include <vector>
#include <queue>
#include <set>
#include <stack>
#include <map>
#include <utility>
#include <numeric>
#include <algorithm>
#include <bitset>
#include <complex>
#include <fstream>
using namespace std;
typedef long long ll;
const double EPS = 1e-9;
typedef vector<int> vint;
typedef pair<int, int> pint;
#define rep(i, n) REP(i, 0, n)
#define ALL(v) v.begin(), v.end()
#define MSG(a) cout << #a << " " << a << endl;
#define REP(i, x, n) for(int i = x; i < n; i++)
template<class T> T RoundOff(T a){ return int(a+.5-(a<0)); }
template<class T, class C> void chmax(T& a, C b){ if(a < b) a = b; }
template<class T, class C> void chmin(T& a, C b){ if(b < a) a = b; }
template<class T, class C> pair<T, C> mp(T a, C b){ return make_pair(a, b); }

const int INF = 1 << 30;

int main()
{
	float top = -1, bottom = INF;
	float in;
	while(cin >> in)
	{
		chmax(top, in);
		chmin(bottom, in);
	}
	
	cout << top - bottom << endl;
}

C++: #include<iostream>
 using namespace std;

int main()
{
    double height, max=0, min=0;
 
    bool i=1;
 
    while (cin >> height)
    {
        if(i)
        {
            max=height;
 
            min=height;
 
            i=0;
        }
 
        if(height>max)
        {
            max = height;
        }
 
        if(height<min)
        {
            min = height;
        }
    }
 
    cout << max-min << endl;
}

C++: // 2011/06/23 Tazoe

#include <iostream>
using namespace std;

int main()
{
	double mnt;
	cin >> mnt;

	double max = mnt;
	double min = mnt;

	while(true){
		cin >> mnt;
		if(cin.eof())
			break;

		if(mnt>max)
			max = mnt;
		if(mnt<min)
			min = mnt;
	}

	cout << max-min << endl;

	return 0;
}

C++: #include<iostream>

using namespace std;

int main(void) {
	double n=0,max=0,min=100;
	while (cin >> n) {
		if (max == 0 && min == 100) {
			max = n;
			min = n;
		}
		else if (max < n) {
			max = n;
		}
		else if (min > n) {
			min = n;
		}
	}
	cout << max - min << endl;
}

C++: #include <iostream>
#include <algorithm>
using namespace std;

int main() {
	double min_h = 100000000, max_h = -100000000;
	double h;
	while(cin >> h) {
		min_h = min(min_h, h);
		max_h = max(max_h, h);
	}
	cout << max_h - min_h << endl;
}

C++: #include <iostream>
#include <cstdlib>
#include <vector>
#include <algorithm>
#include <iomanip>
using namespace std;

int main()
{
    double height;
    vector<double> data;
    while(cin >> height)
    {
        data.push_back(height);
    }
    cout << setprecision(3) << fixed;
    cout <<
        max_element(data.begin(),data.end())
        -
        min_element(data.begin(),data.end())
        << endl;

    return EXIT_SUCCESS;
}

C++: #include<stdio.h>
int main(void)
{
	double max=0,min=10000,temp,ans;
	while(scanf("%lf",&temp)!=EOF){
		if(temp>max){
			max=temp;
		}
		if(temp<min){
			min=temp;
		}
	}
	printf("%lf",max-min);
	return 0;
}