Introduction d'une contrainte dans un programme en C
Lap-top
Messages postés
56
Date d'inscription
Statut
Membre
Dernière intervention
-
Lap-top Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
Lap-top Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous. Je suis nouveau dans le domaine de la programmation. La je cherche a concevoir un programme en langage C qui reçoit en entrée une adresse IP (décimale) et qui ressort sa classe et son adresse BROADCAST. J'ai pu le faire mais là je veux ensuite limiter la valeur de chaque octet entre 0 et 255 pour ainsi donc afficher "Erreur" à l'écran de l'utilisateur lorsqu'il saisit une valeur négative ou supérieur à 255. Aidez moi SVP.
Voici le code que j'ai créé:
Voici le code que j'ai créé:
#include <stdio.h> #include <stdlib.h> int main() { int a,b,c,d=0; printf("\nEntrez la valeur decimale de votre premier octet :\t"); scanf("%d",&a); printf("\nEntrez la valeur decimale de votre deuxieme octet :\t"); scanf("%d",&b); printf("\nEntrez la valeur decimale de votre troisieme octet:\t"); scanf("%d",&c); printf("\nEntrez la valeur decimale de votre quatrieme octet:\t"); scanf("%d",&d); if (a<=126) { printf("\n\nVotre adresse IP est %d %d %d %d",a,b,c,d); printf("\n\nC est une adresse de classe : A\t\n"); printf("\nLe masque de reseau est : 255.0.0.0\n"); printf("\nL adresse BROADCAST est : %d 255.255.255",a); } else if (a>=128 && a<=191) { printf("\n\nVotre adresse IP est %d %d %d %d",a,b,c,d); printf("\n\nC est une adresse de classe : B\n"); printf("\nLe masque de reseau est : 255 255 0 0\n"); printf("\nL adresse BROADCAST est : %d %d 255 255",a,b); } else if (a>=192 && a<=223) { printf("\n\nVotre adresse IP est %d %d %d %d",a,b,c,d); printf("\n\nC est une adresse de classe : C\t\n "); printf("\nLe masque de reseau est : 255 255 255 0\n"); printf("\nL adresse BROADCAST est : %d %d %d 255",a,b,c); } else if (a>=224 && a<=239) { printf("\n\nVotre adresse IP est %d %d %d %d",a,b,c,d); printf("\n\nC'est une adresse de classe D pour le multicasting\n"); printf("\nLe masque du reseau est 255 255 mais il n existe pas de notion de BROADCAST"); } printf("\n\n"); return 0; }
A voir également:
- Introduction d'une contrainte dans un programme en C
- Mettre en veille un programme - Guide
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Forcer la fermeture d'un programme - Guide
- Message programmé iphone - Guide
De plus, attention dans ton code tu as initialisé d à 0 mais pas les autres variables. Dans ton code, ce n'est pas obligatoire mais vu que tu l'as fait pour une seule variable, je préfère préciser.
Voici ce qu'il faudrait faire (dans ce cas, il faut initialiser la variable)
Ca serait plutôt :
Je te laisse répéter ce processus pour b, c et d.
if (a<=126)
C'est plutôt a<=127 pour la classe A.
else if (a>=128 && a<=191)
Pas besoin de préciser >=128 puisque tu es dans un else if. (Sauf si tu veux vraiment exclure (à tort) le cas a=127).
Même remarque pour les autres else if.
Tu peux même parler de la classe E (a>=240) : classe réservée. Dans ce cas, un simple else (sans condition suffira).
Pour la classe D, le masque de sous-réseau que tu as mis est faux. Il est non défini.
Sinon, attention à l'indentation. Elle n'est pas bien faite.
Cdlt,