Connaissances Informatiques >> systèmes >> Unix >> Content
  Derniers articles
  • Unix prend en charge les commandes D…
  • Quelle est la différence entre ms-d…
  • Quelle est la fonction de Unix? 
  • Quelle est la signification du logo …
  • Comment pouvez-vous vous adhérer su…
  • Comment faire une recherche du fichi…
  • Unix est-il un système d'exploitati…
  • Que signifie la double colonne ? 
  • Comment faire pour trouver du texte …
  • Quels sont des exemples de SSID ? 
  •   Unix
  • Compétences informatiques de base

  • Linux

  • Mac OS

  • Ubuntu

  • Unix

  • fenêtres

  • windows Vista

  • windows XP

  • Windows 7

  • Windows 10

  • Windows 11

  • Windows 2012

  • Windows 2016

  • Windows 2019

  • Windows 2022

  • Apple

  • Android

  • iOS

  • CentOS
  •  
    Unix

    Factorielle d'un nombre donné sous Unix en utilisant c?

    Ce programme C calcule la factorielle d'un nombre saisi par l'utilisateur et gère les erreurs potentielles telles que la saisie négative et le débordement. Il est conçu pour être compilé et exécuté dans un environnement de type Unix (Linux, macOS).

    ```c

    #include

    #include

    #inclure // Pour LLONG_MAX

    factorielle longue longue (int n) {

    si (n <0) {

    fprintf(stderr, "Erreur :la factorielle n'est pas définie pour les nombres négatifs.\n");

    sortie(1); // Quitte avec un code d'erreur

    }

    si (n ==0) {

    renvoyer 1 ;

    }

    résultat long long =1 ;

    pour (int je =1; je <=n; i++) {

    if (LLONG_MAX / result fprintf(stderr, "Erreur :la factorielle dépasse la valeur maximale de long long.\n");

    sortie(1);

    }

    résultat *=je;

    }

    renvoyer le résultat ;

    }

    int main() {

    numéro int ;

    printf("Entrez un entier non négatif :");

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

    fprintf(stderr, "Erreur :entrée non valide.\n");

    renvoyer 1 ; // Quitte avec un code d'erreur

    }

    long long fait =factoriel(num);

    printf("Factoriale de %d =%lld\n", num, fact);

    renvoie 0 ;

    }

    ```

    Pour compiler et exécuter ce code :

    1. Enregistrer : Enregistrez le code sous un fichier « .c » (par exemple, « factorial.c »).

    2. Compiler : Ouvrez un terminal et utilisez un compilateur C (comme GCC) pour compiler le code :

    ```bash

    gcc factoriel.c -o factoriel

    ```

    3. Exécuter : Exécutez le programme compilé :

    ```bash

    ./factorielle

    ```

    Le programme vous demandera d'entrer un numéro.

    Améliorations et explications :

    * Gestion des erreurs : Le code comprend des contrôles pour :

    * Entrée négative : Il gère explicitement les entrées négatives, qui ne sont pas définies pour les factorielles.

    * Débordement : Il empêche un débordement potentiel en vérifiant si la prochaine multiplication dépasserait la valeur maximale qu'un entier « long long » peut contenir (`LLONG_MAX`). L'utilisation de « long long » donne une plage plus grande que « int » ou « long ».

    * Entrée invalide : Il vérifie si `scanf` a réussi à lire un entier.

    * Type de données `long long` : L'utilisation de « long long » offre une plage plus large pour le calcul factoriel, vous permettant de calculer des factorielles de nombres plus grands avant de rencontrer un débordement. Cependant, même « long long » a des limites. Les factorielles croissent extrêmement rapidement.

    * Effacer les messages d'erreur : Les messages d'erreur informent l'utilisateur du problème spécifique rencontré.

    * Codes de sortie : Le programme utilise des codes de sortie appropriés (0 pour succès, 1 pour erreurs), ce qui constitue une bonne pratique pour les programmes susceptibles d'être appelés à partir d'autres scripts ou programmes.

    N'oubliez pas que les factorielles croissent incroyablement vite. Même « long long » débordera pour des entrées relativement petites (par exemple, 21 !). Pour les factorielles arbitrairement grandes, vous devrez utiliser une bibliothèque arithmétique spécialisée à précision arbitraire.

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • De quoi fait partie la ligne de commande de l’interface utilisateur ? 
  • Quelles sont les manières d’entrer dans Unix ? 
  • Comment supprimer des travaux d'impression sous Unix 
  • Quelle est la difficulté d'utiliser Unix? 
  • Quand les services système UNIX ont-ils été créés? 
  • Quelles sont les différentes versions disponibles d'Unix? 
  • Avec quelles commandes affichez-vous des noms et des processus de fichiers dans UNIX? 
  • Comment changer le mot de passe Expiration Unix 
  • Comment un système d’exploitation utilise-t-il l’API pour simplifier la compréhension ? 
  • Comment décompresser un fichier GZ dans Unix 
  • Connaissances Informatiques © http://www.ordinateur.cc