I just posted this broken. Here is the code that works. I was told there is 2 ways this can be written more efficient. I can't see it, can you?
#include <iostream>
#include <string>
using namespace std;
void daysOfChristmas (int days, char switcher, string b[12]){(days > 0 && switcher == 'y') ? daysOfChristmas(days - 1, 'y', b): false;
if (days > 0) { daysOfChristmas(days - 1, 'n', b);
cout << "on the " << days << " day of Christmas my true love gave me " << b[(days-1)] << endl;}}
int main() {string gifts [12] = {"a partridge in a Pear Tree", "two turtle doves", "three french hens", "four colly birds", "five golden rings", "six gees-a-laying", "seven swans-a-swimming", "eight maids a miliking", "nine ladies dancing", "ten lords a leaping", "eleven pipiers piping", "drummers drumming"};
daysOfChristmas(12, 'y', gifts);}