Pages

04 May, 2024

Getting a wrong output all the time

I was just trying out a code for finding whether a number is an Armstrong number or not. But it was getting the same output for all the inputs even it is a Armstrong number. So I used an online compiler and it worked.
#include
#include

int main() {
int originalNum, num, lastDigit, digits, sum;

/* Input number from user */
printf("Enter any number to check Armstrong number: ");
scanf("%d", &num);

sum = 0;
originalNum = num;

/* Calculate the number of digits in the input number */
for (digits = 0; originalNum > 0; digits++) {
originalNum /= 10;
}

originalNum = num;

/* Compute the sum of the cubes of individual digits */
while (originalNum > 0) {
lastDigit = originalNum % 10;
sum += pow(lastDigit, digits);
originalNum /= 10;
}

/* Check if the sum equals the original number */
if (sum == num) {
printf("%d is an Armstrong number.\n", num);
} else {
printf("%d is not an Armstrong number.\n", num);
}

return 0;
}

No comments:

Post a Comment

Thanks