Gattuso  | Bonjour,
   le programme suivant à pour but de demander un nombre et de l'afficher en ordre inverse.
 Le problème que j'ai, c'est que ce n'est pas le cas à l'affichage.
 Voici mon code :
  Code :
 - #include <stdio.h>
 - #include <stdlib.h>
 - int g(unsigned int n, char *res){
 -   if (n>9) return 1;
 -   *res = '0' + n;
 -   return 0;
 - }
 - int f(unsigned int n, char *s, size_t *l){
 -   char c; size_t cl=*l;
 -   if(n == 0)
 -     return 0;
 -   g(n%10U, s);
 -   c = *s;
 -   ++*l;
 -   f(n/10U, s+1, l);
 -   if(cl<*l/2){
 -     *s=s[*l-cl-1-cl];
 -     s[*l-cl-1-cl]=c;
 -   }
 -   return 0;
 - }
 - int main(void){
 -   unsigned int n;
 -   char buf[BUFSIZ];/*Suppose tres grand*/
 -   size_t l=0;
 -   printf("Entrez un nombre: " );
 -   if(scanf("%u",&n)==1){
 -     if(n!=0)
 -       f(n, buf, &l);
 -     else{
 -       buf[0]='\0';
 -       ++l;
 -     }
 -     buf[l]='\0';
 -     fprintf(stdout, "%s %u\n", buf, l);
 -     return EXIT_SUCCESS;
 -   }
 -   else return EXIT_FAILURE;
 - }
 
  |  
 
 Ce que j'obtiens :
  Code :
 - $ ./test
 - Entrez un nombre: 45
 - 45 2
 
  |  
 
   Je voudrais aussi savoir comment modifier le main pour être sûr que l'entier sera positif
   Merci    |