#include <stdio.h> #include <stdlib.h> #include <string.h> int verif(char bin[50]) { int i = 0; int size = 0; size = strlen(bin); for (i = 0; i < size;i++) if (bin[i] != '1' && bin[i] != '0') return 0; return 1; } void saisie(char bin[50]) { int valid = 0; while (!valid) { printf("Donnez un nombre binaire: "); scanf("%50s", bin); if (!verif(bin)) printf("Nombre invalid: %s\n", bin); else valid = 1; } } int main() { char bin[50] = {0}; saisie(bin); printf("Votre binaire est %s\n", bin); return 0; }
Améliorez votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
1- pourqoui dans le main vous n'avez pas déclaré la fonction "vérif"
// coucou est au dessus de main. Donc main la voit. void coucou() { } int main() { coucou(); }
void coucou(); // On dit: attention, la fonction coucou, tu ne la vois pas, mais je te garantis qu'elle existe ailleurs. int main() { coucou(); } // Coucou est en dessous de main. Donc main ne la voit pas. void coucou() { }
2- pourqoui vous avez mis :
size = strlen(bin);
for (i = 0; i < size;i++)
au liey de : for (i = 0; i < strlen(bin) ;i++)
3-pourquoi scanf("%50s", bin) au lieu de scanf ("%s", bin)
4- la fonction vérif manque les accolades de la boule for je crois
for (i = 0; i < size;i++) if (bin[i] != '1' && bin[i] != '0') return 0; return 1;
for (i = 0; i < size;i++) { if (bin[i] != '1' && bin[i] != '0') { return 0; } } return 1;
et est ce que entre le "return 0" et le "return 1" il manque un "else" ? ou non ?
Améliorez votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature