J'ai essayé de résoudre cet exercice :
Écrire un programme qui permet de :
o Saisir un entier N de trois chiffres non nuls.
o Déterminer et d’afficher tous les nombres qui peuvent être formés par les chiffres de N.
Exemple : Pour n=427, le programme affiche :
Les nombres formés par les chiffres de n sont : 427, 472, 724, 742, 247,274.
Voilà ma solution , elle marche bien mais je veux une solution itérative je ne veux pas remplir le tableau à la main case par case :
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 program nombre_possibles; uses wincrt; type tab=array[1..6] of integer; var n:integer; t:tab; procedure saisie(var n:integer); begin repeat writeln('saisir un entier de 3 chiffres'); readln(n); until(n>=100) and (n<=999); end; procedure construire(n:integer; var t:tab); var i, c, d, u:integer; begin c:=n div 100; d:= (n mod 100) div 10; u:=n mod 10; t[1]:=c*100+d*10+u; t[2]:=c*100+u*10+d; t[3]:=d*100+u*10+c; t[4]:=d*100+c*10+u; t[5]:=u*100+c*10+d; t[6]:=u*100+d*10+c; end; procedure affiche(t:tab); var i:integer ; begin writeln('Les nombres possibles sont :' ); for i:=1 to 6 do writeln(t[i]); end; begin saisie(n) ; construire(n,t); affiche(t); end.
Partager