Armstrong-Zahl in C finden

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir uns mit Armstrong-Zahlen beschäftigen und ein C-Programm schreiben, um zu überprüfen, ob eine Zahl eine Armstrong-Zahl ist oder nicht. Eine Armstrong-Zahl ist eine Zahl, die die Summe ihrer eigenen Ziffern ist, wobei jede Ziffer hochgestellt wird zur Potenz der Anzahl der Ziffern.

Beispielsweise:

153 ist eine Armstrong-Zahl, weil 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27.
371 ist eine Armstrong-Zahl, weil 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c/ControlFlowGroup -.-> c/if_else("If...Else") c/ControlFlowGroup -.-> c/for_loop("For Loop") c/ControlFlowGroup -.-> c/while_loop("While Loop") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") subgraph Lab Skills c/if_else -.-> lab-123200{{"Armstrong-Zahl in C finden"}} c/for_loop -.-> lab-123200{{"Armstrong-Zahl in C finden"}} c/while_loop -.-> lab-123200{{"Armstrong-Zahl in C finden"}} c/math_functions -.-> lab-123200{{"Armstrong-Zahl in C finden"}} c/create_files -.-> lab-123200{{"Armstrong-Zahl in C finden"}} c/user_input -.-> lab-123200{{"Armstrong-Zahl in C finden"}} end

Erstellen einer neuen C-Datei

Zunächst müssen wir eine neue C-Datei im Verzeichnis ~/project/ erstellen. Nennen wir sie main.c.

touch ~/project/main.c

Armstrong-Zahlen zwischen 1 und 500 finden

Schreiben wir ein C-Programm, um Armstrong-Zahlen zwischen 1 und 500 zu finden.

#include <stdio.h>
#include <math.h>

int main() {
    printf("\nArmstrong-Zahlen zwischen 1 und 500 sind: \n");

    for (int i = 1; i <= 500; i++) {
        int t = i, sum = 0;
        while (t!= 0) {
            int digit = t % 10;
            sum += pow(digit, 3);
            t /= 10;
        }
        if (sum == i) {
            printf("%d ", i);
        }
    }

    return 0;
}

Überprüfen, ob eine Zahl eine Armstrong-Zahl ist

Schreiben wir nun ein C-Programm, um zu überprüfen, ob eine Zahl eine Armstrong-Zahl ist oder nicht.

#include <stdio.h>
#include <math.h>

int main() {
    int n, sum = 0;
    printf("Geben Sie eine Zahl ein: ");
    scanf("%d", &n);

    int temp = n;
    while (temp!= 0) {
        int digit = temp % 10;
        sum += pow(digit, 3);
        temp /= 10;
    }

    Wenn (sum == n) {
        printf("%d ist eine Armstrong-Zahl.\n", n);
    } Andernfalls {
        printf("%d ist keine Armstrong-Zahl.\n", n);
    }

    return 0;
}

Alles zusammenbringen

Bringen wir beide Programme in unsere main.c-Datei zusammen.

#include <stdio.h>
#include <math.h>

int main() {
    // Armstrong-Zahlen zwischen 1 und 500
    printf("Armstrong-Zahlen zwischen 1 und 500 sind: \n");

    for (int i = 1; i <= 500; i++) {
        int t = i, sum = 0;
        while (t!= 0) {
            int digit = t % 10;
            sum += pow(digit, 3);
            t /= 10;
        }
        if (sum == i) {
            printf("%d ", i);
        }
    }

    printf("\n");

    // Überprüfen, ob eine Zahl eine Armstrong-Zahl ist
    int n, sum = 0;
    printf("Geben Sie eine Zahl ein: ");
    scanf("%d", &n);

    int temp = n;
    while (temp!= 0) {
        int digit = temp % 10;
        sum += pow(digit, 3);
        temp /= 10;
    }

    if (sum == n) {
        printf("%d ist eine Armstrong-Zahl.\n", n);
    } else {
        printf("%d ist keine Armstrong-Zahl.\n", n);
    }

    return 0;
}

Zusammenfassung

In diesem Lab haben wir uns mit Armstrong-Zahlen beschäftigt und gelernt, wie man sie in einem gegebenen Bereich findet und wie man überprüft, ob eine Zahl eine Armstrong-Zahl ist oder nicht. Wir hoffen, dass Ihnen dieses Lab gefallen hat und es Ihnen geholfen hat, mehr über die C-Programmierung zu lernen.