fn main() {
    let days = ["first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth",
                "ninth", "tenth", "eleventh", "twelfth"];

    let gifts = ["A Patridge in a Pear Tree",
                 "Two Turtle Doves and",
                 "Three French Hens",
                 "Four Calling Birds",
                 "Five Golden Rings",
                 "Six Geese a Laying",
                 "Seven Swans a Swimming",
                 "Eight Maids a Milking",
                 "Nine Ladies Dancing",
                 "Ten Lords a Leaping",
                 "Eleven Pipers Piping",
                 "Twelve Drummers Drumming"];

    for i in 0..12 {
        println!("On the {} day of Christmas,", days[i]);
        println!("My true love sent to me:");

        for j in (0..i + 1).rev() {
            println!("{}", gifts[j]);
        }
        println!()
    }
}

fn showpresents(count: usize) {
    let days = ["second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth",
                "tenth", "eleventh", "twelfth"];

    let presents = ["Two turtle doves",
                    "Three french hens",
                    "Four calling birds",
                    "Five golden rings",
                    "Six geese a-laying",
                    "Seven swans a-swimming",
                    "Eight maids a-milking",
                    "Nine ladies dancing",
                    "Ten lords a-leaping",
                    "Eleven pipers piping",
                    "Twelve drummers drumming"];

    println!("On the {} day of Christmas my true love gave to me {}",
             days[count - 1],
             presents[count - 1]);
    if count > 0 {
        let mut j = count - 1;
        while j > 0 {
            println!("{}", presents[j - 1]);
            j -= 1;

        }
    }
    println!("And a partridge in a pear tree \n");
}

fn main() {
    println!("On the first day of Christmas my true love gave to me a partridge in a pear tree\n");

    for count in 1..12 {
        showpresents(count);
    }
}

--- 
+++ 
@@ -1,37 +1,27 @@
-fn showpresents(count: usize) {
-    let days = ["second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth",
-                "tenth", "eleventh", "twelfth"];
+fn main() {
+    let days = ["first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth",
+                "ninth", "tenth", "eleventh", "twelfth"];
 
-    let presents = ["Two turtle doves",
-                    "Three french hens",
-                    "Four calling birds",
-                    "Five golden rings",
-                    "Six geese a-laying",
-                    "Seven swans a-swimming",
-                    "Eight maids a-milking",
-                    "Nine ladies dancing",
-                    "Ten lords a-leaping",
-                    "Eleven pipers piping",
-                    "Twelve drummers drumming"];
+    let gifts = ["A Patridge in a Pear Tree",
+                 "Two Turtle Doves and",
+                 "Three French Hens",
+                 "Four Calling Birds",
+                 "Five Golden Rings",
+                 "Six Geese a Laying",
+                 "Seven Swans a Swimming",
+                 "Eight Maids a Milking",
+                 "Nine Ladies Dancing",
+                 "Ten Lords a Leaping",
+                 "Eleven Pipers Piping",
+                 "Twelve Drummers Drumming"];
 
-    println!("On the {} day of Christmas my true love gave to me {}",
-             days[count - 1],
-             presents[count - 1]);
-    if count > 0 {
-        let mut j = count - 1;
-        while j > 0 {
-            println!("{}", presents[j - 1]);
-            j -= 1;
+    for i in 0..12 {
+        println!("On the {} day of Christmas,", days[i]);
+        println!("My true love sent to me:");
 
+        for j in (0..i + 1).rev() {
+            println!("{}", gifts[j]);
         }
-    }
-    println!("And a partridge in a pear tree \n");
-}
-
-fn main() {
-    println!("On the first day of Christmas my true love gave to me a partridge in a pear tree\n");
-
-    for count in 1..12 {
-        showpresents(count);
+        println!()
     }
 }
Correct Twelve Days of Christmas Implementation

- The lyrics given on the required page (http://www.lyricsmode.com/lyrics/c/christmas_carols/the_twelve_days_of_christmas.html) make this task much easier than you'd expect
- I've also updated the implementation on the official site (https://rosettacode.org/wiki/The_Twelve_Days_of_Christmas#Rust), along with a Rust Playground link (https://play.rust-lang.org/?gist=4f349c8959b48e804f592e7251e6abbf&version=stable&backtrace=0)