ich ein Programm schreiben müssen, ist, dass alle drei Dinge tut: alle Faktoren drucken, die Faktoren summieren und überprüfe, ob es eine perfekte Nummer ist.Wie ein C-Programm schreiben, das alle Faktoren einer Zahl druckt, wobei die Summe der Faktoren, und prüft, ob es sich um eine perfekte Zahl
Ich soll nur While-Schleifen verwenden, aber ich konnte es nicht zum Laufen bringen, also habe ich stattdessen einige For-Schleifen benutzt. Abgesehen davon besteht das Hauptproblem darin, dass das Programm überprüft, ob die Nummer perfekt ist oder nicht.
Zum Beispiel gebe ich ‚6‘, die 1,2,3,6 mir die Faktoren gibt, die Summe = 12, aber das Programm denkt, ‚6‘ nicht eine perfekte Zahl ist. Bitte schauen Sie sich meinen Code an, um zu sehen, wo ich falsch gelaufen bin.
#include <stdio.h>
int main(void) {
int n, f, sum;
f = 1;
sum = 0;
printf("Enter number: ");
scanf("%d", &n);
printf("The factors of %d are:\n", n);
//Finding the factors of the given number
while (f <= n) {
if (n % f == 0) {
printf("%d\n", f);
}
f++; //f++ is the same as f = f + 1
}
//Finding the sum of the factors
for (f = 1; f <= n; f++) {
if (n % f == 0) {
sum = sum + f;
}
}
printf("Sum of factors = %d\n", sum);
//Checking if the number is perfect or not; A number is considered perfect if the sum of it's divisiors equal the number eg 6 = 1+2+3
for (f = 1; f < n; f++) {
if (n % f == 0) {
sum = sum + f;
}
}
if (sum == n) {
printf("%d is a perfect number\n", n);
} else {
printf("%d is not a perfect number\n", n);
}
return 0;
}
Erfahren Sie, wie ein Debugger verwenden, dann können Sie zwar den Code Zeile für Zeile Schritt, um zu sehen, was es tut, aber auch die Variablen und ihre Werte zu beobachten und wie sie sich verändern. –
Jede for-Schleife kann in eine while-Schleife umgewandelt werden und umgekehrt. –