Feb 11, 3:55pm

Oui, vous pouvez déclarer l'âge comme un type unsigned int (entier non signé) pour garantir qu'il ne peut pas être négatif. En C, un unsigned int ne peut contenir que des valeurs positives ou zéro. Cela permet de s'assurer que l'âge saisi ne sera jamais négatif.

Voici comment vous pouvez modifier le programme pour utiliser unsigned int pour l'âge :

c
#include <stdio.h>
#include <stdlib.h>

int main() {
    // Déclaration des variables pour stocker le prénom, le nom et l'âge
    char *prenom = NULL;
    char *nom = NULL;
    unsigned int age; // Utiliser unsigned int pour garantir que l'âge ne peut pas être négatif

    // Demander à l'utilisateur de saisir son prénom
    printf("Entrez votre prénom : ");
    scanf("%ms", &prenom); // Utiliser %ms pour allouer dynamiquement de la mémoire

    // Demander à l'utilisateur de saisir son nom
    printf("Entrez votre nom : ");
    scanf("%ms", &nom); // Utiliser %ms pour allouer dynamiquement de la mémoire

    // Demander à l'utilisateur de saisir son âge
    printf("Entrez votre âge : ");
    scanf("%u", &age); // Utiliser %u pour lire un unsigned int

    // Afficher le message avec les valeurs saisies
    printf("Bonjour %s %s, vous avez %u ans.\n", prenom, nom, age);

    // Libérer la mémoire allouée dynamiquement
    free(prenom);
    free(nom);

    return 0;
}

Dans ce code, unsigned int age garantit que l'âge ne peut pas être négatif. Lors de la lecture de l'âge avec scanf, le format %u est utilisé pour lire un entier non signé. Cela empêche l'utilisateur de saisir un âge négatif, car scanf interprétera toute entrée négative comme une valeur positive ou zéro.

Feb 11, 3:55pm

This is a shared conversation and may include unverified content that doesn't reflect Mistral AI's views. Login to resume chatting.

Vibe can make mistakes. Check answers. Learn more