Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
`` C
#include
#include
#vrátane
dlhý dlhý faktor (int n) {
if (n <0) {
fprintf (stderr, "Chyba:faktor nie je definovaná pre záporné čísla. \ n");
Výstup (1); // Exit s chybovým kódom
}
if (n ==0) {
návrat 1;
}
dlhý výsledok =1;
pre (int i =1; i <=n; i ++) {
if (lLong_max /result
fprintf (stderr, "Chyba:faktory presahuje maximálnu dlhú hodnotu. \ n");
Výstup (1);
}
výsledok *=i;
}
Výsledok návratnosti;
}
int main () {
int num;
printf ("Zadajte nezáporné celé číslo:");
if (Scanf ("%d", &num)! =1) {
fprintf (stderr, "error:invalid vstup. \ n");
návrat 1; // Exit s chybovým kódom
}
Dlhá skutočnosť =faktor (NUM);
printf ("faktor %d =%lld \ n", num, fakt);
návrat 0;
}
`` `
Zostaviť a spustiť tento kód:
1. uložiť: Uložte kód ako súbor `.c` (napr.` Faktorial.c`).
2. kompilácie: Otvorte terminál a na zostavenie kódu pomocou kompilátora C (napríklad GCC):
`` `Bash
gcc faktor.c -o faktorial
`` `
3. Run: Vykonajte kompilovaný program:
`` `Bash
./Faktorial
`` `
Program vás vyzve na zadanie čísla.
Vylepšenia a vysvetlenia:
* Manipulácia s chybami: Kód obsahuje kontroly:
* negatívny vstup: Explicitne spracováva negatívny vstup, ktorý nie je definovaný pre faktory.
* pretečenie: Zabraňuje potenciálnemu pretečeniu kontrolou, či by nasledujúce násobenie prekročilo maximálnu hodnotu, ktorú dokáže zadržať celé číslo „dlhé“ (`lLong_max`). Používanie `dlhé 'poskytuje väčší rozsah ako` int` alebo `dlhý".
* Neplatný vstup: Skontroluje, či „Scanf` úspešne prečíta celé číslo.
* `Long Long` Typ údajov: Použitie „dlhého“ poskytuje väčší rozsah pre faktoriálny výpočet, čo vám umožňuje vypočítať faktoriály väčšieho počtu pred stretnutím s pretečením. Avšak aj „dlhá“ má limity. Faktoriály rastú mimoriadne rýchlo.
* Vymažte chybové správy: Chybové správy informujú používateľa o konkrétnom probléme, s ktorým sa vyskytuje.
* Exitované kódy: Program používa príslušné výstupné kódy (0 pre úspech, 1 pre chyby), čo je osvedčou praxou pre programy, ktoré by sa dali nazvať z iných skriptov alebo programov.
Pamätajte, že faktoriály rastú neuveriteľne rýchlo. Dokonca aj „dlhý“ prepadne pre relatívne malé vstupy (napr. 21!). Pre ľubovoľne veľké faktore by ste mali použiť špecializovanú aritmetickú aritmetickú knižnicu.