|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
System
  • Grundläggande datorkunskaper
  • Linux
  • Mac OS
  • Ubuntu
  • Unix
  • Windows
  • Windows Vista
  • Windows XP
  • Windows 7
  • Windows 10
  • Windows 11
  • Windows 2012
  • Windows 2016
  • Windows 2019
  • Windows 2022
  • Apple
  • Android
  • iOS
  • CentOS
  • * Dator Kunskap >> System >> Unix >> Content

    Factorial för ett givet nummer i Unix med C?

    Detta C -program beräknar faktor för ett nummer som anges av användaren och hanterar potentiella fel som negativ ingång och överflöde. Den är utformad för att sammanställa och springa i en Unix-liknande miljö (Linux, MacOS).

    `` `c

    #include

    #include

    #omfatta // för llong_max

    Långt långa factorial (int n) {

    if (n <0) {

    fprintf (Stderr, "Error:Factorial är inte definierat för negativa siffror. \ n");

    utgång (1); // Avsluta med en felkod

    }

    if (n ==0) {

    return 1;

    }

    långt långt resultat =1;

    för (int i =1; i <=n; i ++) {

    if (llong_max /resultat fprintf (stderr, "Error:Factorial överskrider maximalt långt värde. \ n");

    utgång (1);

    }

    resultat *=i;

    }

    returresultat;

    }

    int main () {

    int num;

    printf ("Ange ett icke-negativt heltal:");

    if (scanf ("%d", &num)! =1) {

    fprintf (Stderr, "Error:Ogiltig ingång. \ n");

    return 1; // Avsluta med en felkod

    }

    långt långt fakta =faktor (num);

    printf ("Factorial of %d =%lld \ n", num, fact);

    return 0;

    }

    `` `

    För att kompilera och köra den här koden:

    1. spara: Spara koden som en ".c" -fil (t.ex. "factorial.c").

    2. kompilera: Öppna en terminal och använd en C -kompilator (som GCC) för att sammanställa koden:

    `` `bash

    GCC Factorial.C -O FAKTORIAL

    `` `

    3. Run: Utför det sammanställda programmet:

    `` `bash

    ./faktorial

    `` `

    Programmet kommer att uppmana dig att ange ett nummer.

    Förbättringar och förklaringar:

    * Felhantering: Koden innehåller kontroller för:

    * Negativ ingång: Den hanterar uttryckligen negativ input, som inte är definierad för fabriker.

    * överflöde: Det förhindrar potentiellt överflöde genom att kontrollera om nästa multiplikation skulle överskrida det maximala värde som ett "långt" heltal kan hålla (`llong_max '). Att använda "lång lång" ger ett större intervall än "int" eller "lång".

    * Ogiltig ingång: Den kontrollerar om "scanf" framgångsrikt läser ett heltal.

    * `lång lång" datatyp: Att använda "Long Long" ger ett större sortiment för faktoriell beräkning, så att du kan beräkna faktorier med större antal innan du möter överflöd. Men till och med "lång lång" har gränser. Factorials växer extremt snabbt.

    * Rensa felmeddelanden: Felmeddelandena informerar användaren om det specifika problemet som uppstått.

    * utgångskoder: Programmet använder lämpliga utgångskoder (0 för framgång, 1 för fel) vilket är god praxis för program som kan kallas från andra skript eller program.

    Kom ihåg att factorials växer otroligt snabbt. Till och med "lång lång" kommer att flyta över för relativt små ingångar (t.ex. 21!). För godtyckligt stora faktorier skulle du behöva använda ett specialiserat arbitriskt precision aritmetiskt bibliotek.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Vad är mv -kommandot i Unix?
    ·Vad är syntax i datoranvändning?
    ·Hur Unix -system kallar fungerar?
    ·Vad är beroendehelvete i Linux?
    ·Vad är interproceskommunikation i Unix?
    ·Hur du ändrar ett finger i Unix Med chfn
    ·Vad är den maximala storleken på en fil i Unix?
    ·Hur man flyttar in Unix
    ·Tutorial på Unix ZFS
    ·Hur LS ett träd i Unix
    Utvalda artiklarna
    ·Hur förstora en HFS-partition från Linux
    ·Hur man installerar en DEB -fil från en dator
    ·Hur man programmerar en USB Modem
    ·Vilka är de olika typerna av buffring i unix?
    ·Hur man byter ett helt fönster Frame
    ·Hur man använder en kortläsare i en bärbar dator
    ·Hur återställer jag Windows XP Efter en Vista Upgrade…
    ·Så här ändrar välkomstskärm i Windows
    ·Hur man skapar en baslinje för dators prestanda med Wi…
    ·Hur ändra tiden på datorns klocka
    Copyright © Dator Kunskap https://www.dator.xyz