Dieses Programm zeigt 153 nicht als Armstrong-Nummer, während für andere Zahlen die Ausgabe korrekt ist. Wie ich für 407 überprüft habe, gab es die richtige Antwort, aber als ich 153 überprüfte, zeigte es keine Armstrong-Nummer.C-Programm für Armstrong-Nummer mit falschem Ausgang
#include <stdio.h>
#include <math.h>
int main() {
int no, copy, re, n = 0, ans = 0;
printf("\n\tEnter a new number: ");
scanf("%d", &no);
copy = no;
while (copy != 0) {
copy = copy/10;
n++;
}
copy = no;
while (copy != 0) {
re = copy % 10;
ans = ans + pow(re, n);
copy = copy/10;
}
if (ans == no) {
printf("\n\t %d is an Armstrong number", no);
} else {
printf("\n\t %d is not an Armstrong number", no);
}
getch();
return 0;
}
Haben Sie Ihren Code Zeile für Zeile in einem Debugger durchlaufen? Das ist der richtige Weg, um solche Probleme zu debuggen und nur um Hilfe zu bitten, nachdem Sie alle Anstrengungen unternommen haben, sich selbst zu debuggen. – kaylum
Ihr Code enthält eine beliebige Nummer, die ich als Armstrong angegeben habe. – Marievi
1) Code einrücken 2) Benennen Sie Ihre Variablen richtig. –