Bonjour,

je me permets de venir vous embêter un peu parce que là, je comprend plus rien, j'ai la tête qui chauffe !

J'ai écrit un programme qui demande un nombre entier et qui nous dit si oui ou non l'entier en question est un nombre de Kaprekar !

Je l'ai écrit avec plusieurs variable globales, il fonctionnait mais j'aimerais maintenant supprimer toutes pour n'avoir que des variables locales.

Et je GALERE !

J'ai une fonction qui doit me retourner 2 valeurs rangées dans un tableau mais comme ce tableau n'est pas déclaré en variable globales, je dois retourner l'adresse du tableau pour ensuite utiliser les valeurs du tableau. (enfin c'est comme ça que je le vois)

Et LA, je me mélange les pattes ! J'ai essayé toutes les combinaisons possible avec * & ..... etc

Mais impossible de comprendre.

Oh Grand Merci, Mr. le Debugger est là. Mouahahahahah mais NON.
j'arrive même plus à rentrer dans ma fonction parce que ...... pourquoi d'ailleurs ...? ? ?

Je vous laisse observer le massacre : (à force de le modifier il y surement des trucs complètement aberrant voir débile !)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// #include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
 
int longueur(int x);
int decompose(int M, int a);
int kaprekar(int n1, int nbch, int *adr);
 
int main(int kap, int nbch)
{
    int nb=0, tab[2]={0,0}, *p=NULL;
 
    printf("Nb de Kaprekar");
 
    printf("\nEntrez un nombre entier:");
    scanf("%d",&nb);
 
    p=&tab[0];
 
    kaprekar(nb, nbch, p);
 
//    printf("\nVotre nombre au carre vaut : %d\n",kapcar);
//    printf("\nVotre nombre au carre est compose de %d chiffre(s)\n",a);
//    printf("\nLa partie de gauche M2=%d et la partie de droite M1=%d\n",M2, M1);
 
    if(kap==nb)
               printf("\nVotre nombre est un nombre de Kaprekar\n");
    else
               printf("\nVotre nombre n'est pas un nombre de Kaprekar\n");
 
 
system("PAUSE");
return 0;
}
 
 
int longueur(int x)
{
 int nbch=0;
 
 while(x!=0)
 {
            x = x/10;
            nbch=nbch+1;
 }
 
 return nbch;
}
 
 
int decompose(int M, int place)
{ 
    int a=0, M2=0, M1=0, tab[2];
 
    a=pow(10,place);
    tab[0]=M2=M/a;
    tab[1]=M1=M%a;
 
    return *tab;
}
 
 
int kaprekar(int n1, int nbch, int *adr)
{
   int kapcar=0, n=0, kap=0, *tab;
 
   kapcar=n1*n1;
 
   longueur(kapcar);
 
   if(nbch%2==0)
    n=nbch/2;
   else
    n=(nbch/2)+1;
 
   decompose(kapcar, n);
 
   tab=&tab[0];
   kap=tab[0];
   tab=&tab[1];
   kap=kap+tab[1];
 
   return kap;
}

MERCI ! Cordialement, Cédric