• STATISTIQUES
  • Il y a eu un total de 0 membres et 8575 visiteurs sur le site dans les dernières 24h pour un total de 8 575 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] PHP France
    Pour tout savoir sur le PHP, en français. Vous trouverez des tutoriels, des exemples, des astuces, toute la do...
    Hacking
    [FR] Root-me
    Script: 5, Système: 20, Cracking: 16, Cryptanalyse: 17, Programmation: 8, Réaliste: 11, Réseau: 10, Stéganog...
    Challenges
    [FR] Developpez.net
    Un forum communautaire qui se veut pour les développeurs en générale. Avec presque 500 000 membr...
    Programmation
    [EN] osix
    Site de challenge qui utilise un système de level on chaque épreuve doit être réussie avant d'accédÃ...
    Challenges
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking
    [FR] µContest
    µContest est un site de challenges de programmation, c'est à dire qu'il propose des épreu...
    Hacking
    [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!

    €



Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Mini-challenge] Normaliser la sortie d'une comparaison.
27-09-2014, 11h04 (Modification du message : 27-09-2014, 11h04 par b0fh.)
Message : #1
b0fh Hors ligne
Membre actif
*



Messages : 210
Sujets : 17
Points: 309
Inscription : Jul 2012
[Mini-challenge] Normaliser la sortie d'une comparaison.
Dans la libc, la fonction strcmp(a,b) compare deux strings, et retourne une valeur négative, nulle ou positive suivant que a est plus petit, égal, ou plus grand que b.

Cette convention a été choisie parce qu'elle donne lieu a une implémentation très efficace, qui consiste a retourner la différence entre la première paire de caractères non-égaux:

Code :
int strcmp(char *a, char *b) {
    while(*a && *a == *b) {++a; ++b; }
    return *a - *b;
}

Dans certains cas, il peut être désirable de normaliser la sortie de cette fonction, c'est a dire de transformer toutes les valeurs positives en +1, et toutes les valeurs négatives en -1.

Challenge: réalisez cette transformation sans utiliser de structures de contrôle, ni opérateurs impliquant des sauts (&&, ||, ?: ) ! Le code doit marcher quelle que soit la taille effective du type int.

EDIT: corrigé une typo, c'était *a - *b et pas a - b évidemment, merci Kiwazaru

Résolu par:
(personne pour l'instant)
+1 (0) -1 (0) Répondre


Messages dans ce sujet
[Mini-challenge] Normaliser la sortie d'une comparaison. - par b0fh - 27-09-2014, 11h04

Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  XSS challenge x4 Shirobi 10 896 09-04-2013, 20h25
Dernier message: InstinctHack
  [Challenge] [ +1 Byte[ Shirobi 3 448 15-03-2013, 00h30
Dernier message: Sh4dows
  Aide challenge Shirobi 8 802 28-01-2013, 16h04
Dernier message: Di0Sasm
  liste de site de challenge badTasTe 5 552 25-05-2012, 17h23
Dernier message: Di0Sasm

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut