still needs work, but I mostly fixed some of your logic
Code:
//Programming in C
/*
* checking armstrong for n digits
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdbool.h>
#include <ctype.h> // tolower
int main(int argc, char const *argv[])
{
int number, originalNumber, remainder, result = 0, n = 0;
char what = '\0'; // set to null
system("clear");
bool test = true;
while (test)
{
printf("Enter an integer: \n-> ");
scanf("%d", &number);
originalNumber = number;
while (originalNumber != 0)
{
originalNumber /= 10;
printf("1. loop orginal Number %d\n", originalNumber);
++n;
}
originalNumber = number;
printf("2. loop orginal Number %d\n", originalNumber);
while (originalNumber != 0)
{
remainder = originalNumber%10;
result += pow(remainder, n);
originalNumber /= 10;
printf("3. loop orginal Number %d\n"
"result = %d\n"
"number %d\n", originalNumber, result,number);
}
if (result == number)
{
printf("%d's an armstrong number.\n", number);
}
else
{
printf("%d is not an armstrong number.\n"
"would you like to try another one? y/n\n", number);
what = getchar();
}
if (tolower(what) == 'n')
test = false;
/*
{
if (getchar() == 121)
{
}
else
{ printf("in just before setting test to false\n");
test = false;
}
}
*/
}
getchar();
return 0;
}
keep them printf in there then run it a few times to see what is really going on. Needs more work because you forgot something else as well when using loops and the same vars repeatedly. After you get it fixed try to make it look pretty.