Ok, so this is my homework assignment. But before everyone says, "figure it out," I have gotten the program to work. I just can't figure out why it won't work for the full ten characters of an integer. The homework asks a user to input an integer. Using one switch we are to print the number in single integer words (26 would be two six). I can get that to work. The problem I'm having is when I enter 1-0 as the integer it prints, "one two three four five six seven eight zero zero." If I enter 1-9 it prints, "one two three four five six seven nine nine." If I enter 1-8, it works just fine. I'm not sure what's going wrong here. Here is my coding.
#include <stdio.h>
int main(void)
{
int num, num2, integer, decimal_place, length, sum;
float multiplier, integer_length, avg;
printf("\nPlease enter an integer: ");
scanf("%d", &num);
printf("\n");
printf("\tYou have entered:\n\n\t");
if (num < 0)
{
printf("negative ");
num *= -1;
}
num2 = num;
length = 1;
sum = 0;
integer_length = 0;
// Get the length of the input
while (num2 > 9)
{
length++;
num2 /= 10;
}
for (integer = length; integer > 0; integer--)
{
multiplier = 10;
for (decimal_place = integer; decimal_place > 0; decimal_place--)
{
multiplier *= 0.1;
}
num2 = num * multiplier;
num2 %= 10;
switch(num2)
{
case 0:
printf("zero");
sum += 0;
break;
case 1:
printf("one");
sum += 1;
break;
case 2:
printf("two");
sum += 2;
break;
case 3:
printf("three");
sum += 3;
break;
case 4:
printf("four");
sum += 4;
break;
case 5:
printf("five");
sum += 5;
break;
case 6:
printf("six");
sum += 6;
break;
case 7:
printf("seven");
sum += 7;
break;
case 8:
printf("eight");
sum += 8;
break;
case 9:
printf("nine");
sum += 9;
break;
}
printf(" ");
}
while ( num > 0 )
{
num /= 10.00;
integer_length++;
}
avg = sum / integer_length;
printf("\n\nThe sum of the individual integers is: %d\n", sum);
printf("The average is: %.2f", avg);
printf("\n\n");
return 0;
}
Any help would be greatly appreciated.