Programme en c
Fermé
jihad86
Messages postés
19
Date d'inscription
jeudi 24 novembre 2005
Statut
Membre
Dernière intervention
25 juin 2006
-
14 avril 2006 à 22:49
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 15 avril 2006 à 11:01
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 15 avril 2006 à 11:01
A voir également:
- Programme en c
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Mettre en veille un programme - Guide
- Programme démarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
4 réponses
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
15 avril 2006 à 02:10
15 avril 2006 à 02:10
C'est dans le même genre que ce qu'on a fait ici :
https://forums.commentcamarche.net/forum/affich-2193642-langage-c
Sauf que là tu t'intéresse à la lecture d'un mot seulement. Parcours chaque caractère de ce mot et tant que c'est à chiffre, tu multiplie par 10 le résultat précedemment calculé et tu ajoute le chiffre que tu viens de lire.
Encore une fois c'est l'idée que je te donne je n'ai pas testé si ça marchait... Je te laisse peaufiner tout ça.
Bonne chance
https://forums.commentcamarche.net/forum/affich-2193642-langage-c
Sauf que là tu t'intéresse à la lecture d'un mot seulement. Parcours chaque caractère de ce mot et tant que c'est à chiffre, tu multiplie par 10 le résultat précedemment calculé et tu ajoute le chiffre que tu viens de lire.
unsigned int read_unsigned_int(char *mot){ unsigned short int n=0; unsigned int res=0; while( sscanf(mot,"%d",&n) == 1 ){ res*=10; res+=n; } return res; }
Encore une fois c'est l'idée que je te donne je n'ai pas testé si ça marchait... Je te laisse peaufiner tout ça.
Bonne chance
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
15 avril 2006 à 10:13
15 avril 2006 à 10:13
En fait je viens de me rendre compte que c'était faux parce que le %d va lire d'un coup le nombre. Il faut faire un truc à base de getc (à la place du sscanf) en fait, et après repartir du code ascii pour le convertir le char en entier.
Sinon le reste est pareil.
Merci du compliment lami20j, je suis flattée ;)
Bonne chance
Sinon le reste est pareil.
Merci du compliment lami20j, je suis flattée ;)
Bonne chance
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
15 avril 2006 à 10:46
15 avril 2006 à 10:46
Je dis n'importe quoi ce matin, vu qu'on fait du atoi on ne fait pas de getc ou de scanf... Oulala heureusement c'est le week-end ;-)
http://www.manpagez.com/missing.php
En espérant m'être pas trop craquée cette fois-ci ;-)
Bonne chance
http://www.manpagez.com/missing.php
#include <string.h> #define ERR 0 unsigned short int ctoi(char c){ if(c>=48 && c <=57){ return c-48; // conversion ascii --> decimal } printf("ctoi : caractère %c invalide... retourne %d\n",c,ERR); return ERR; } unsigned int read_unsigned_int(char *mot){ unsigned int i,res=0,len=strlen(mot); unsigned short int n; for(i=0;i<len;++i){ res*=10; n=ctoi(mot[i]); if(n==ERR){ printf("atoi : chaine %s invalide... retourne %d\n",mot,ERR); return ERR; } res+=n; } return res; }
En espérant m'être pas trop craquée cette fois-ci ;-)
Bonne chance
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
15 avril 2006 à 11:01
15 avril 2006 à 11:01
en fait pour ERR faut prendre une valeur qui n'est pas dans {0,...9}. En fait on n'a qu'à prendre ERR == -1 et retourner des entiers signés pour les deux fonctions comme ça c'est reglé ;)
15 avril 2006 à 02:17
malgré l'heure t'est toujours performant(e).
lami20j