#include #include #include char* sumtext( float sum ) { int pennies, dimes, ones, tens, hundreds; char sum_text[90] = ""; char ones_text[][7] = {"One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine "}; char tens_text[][9] = {"Ten ", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety "}; // set array of values here char teens_text[][11] = {"Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen "}; hundreds = (int)(sum / 100); tens = (int)(sum / 10) - (hundreds * 10); ones = (int)sum - (hundreds * 100) - (tens * 10); dimes = (int)( ( sum - (int)sum ) * 10 ); // round() or add .5 and then make int pennies = (int)((sum - (int)sum) * 100 - (dimes * 10)); if ( hundreds > 0 ) { strcat(sum_text, ones_text[hundreds - 1]); strcat(sum_text, "Hundred "); } if ( tens == 1 && ones > 0) { strcat(sum_text, teens_text[ones - 1]); } else if ( tens > 0 ) { strcat(sum_text, tens_text[tens - 1]); if ( ones > 0 ) { strcat(sum_text, ones_text[ones - 1]); } } else { strcat(sum_text, ones_text[ones - 1]); } strcat(sum_text, "Dollars And "); if ( dimes == 0 && pennies == 0 ) { strcat(sum_text, "No "); } else if ( dimes == 1 && pennies > 0) { strcat(sum_text, teens_text[pennies - 1]); } else if ( dimes > 0 ) { strcat(sum_text, tens_text[dimes - 1]); if ( ones > 0 ) { strcat(sum_text, ones_text[pennies - 1]); } } else { strcat(sum_text, ones_text[pennies - 1]); } strcat(sum_text, "Cents"); return sum_text; } int main(int argc, char *argv[]) { printf("%s\n", sumtext(115.25)); printf("%s\n", sumtext(512.19)); printf("%s\n", sumtext(520.10)); // floats are not stored as exact decimals... as fractions... so slightly off system("PAUSE"); return EXIT_SUCCESS; }