Voici mon problème:je veux incrémenter le k dans la dernière condition de la boucle for(nb=0;nb<fact(n-k-1);nb++) chaque fois qu'on va boucler
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
x=a[k-1];
a[k-1]=a[k]; /*je veux incrémenter a[k] en laissant a[k-1] fixe*/
a[k]=x;
voici mon code(pas encore terminé):
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
#include<stdio.h>
void main()
{
	int fact(int n),n,t[100],a[100],v[1000][100],i,j,k,l,x,nb;
 
	do
	{
		printf("Donner le nombre n\n");
		scanf("%d",&n);
	}
	while(n>100);
	for(i=0;i<n;i++)
	{
		printf("Donner le %d%s élément\n",(i+1),(i)?"eme":"er");
		scanf("%d",&t[i]);
	}
 
	/*copie du tableau initial*/
	for(i=0;i<n;i++)
		a[i]=t[i];
[code]	for(k=0;k<n;k++)
	{
		l=0;
		i=k;
		while(l<fact(n) && i<n)
		{   /*remplir les lignes de la matrice */ 
			for(nb=0;nb<fact(n-k-1);nb++)
			{
				v[l][k]=a[k];
				l++;
			}
			if(i<n-1)
			{
				x=a[k];
				a[k]=a[i+1];
				a[i+1]=x;
			}
			if(i==(n-1))
			{
				x=a[k];
				a[k]=a[n-1];
				a[n-1]=x;
			}
 
 
			if(v[l-1][k]==a[n-1] && k>0)
 
			{	/*mise à zéro(se référer au tableau initial)*/
					for(nb=0;nb<fact(n-k-1);nb++)
			{
				v[l][k]=a[k];
				l++;
			}
			for(i=k;i<n;i++)
			a[i]=t[i];
					/*fin de la mise à zéro*/
 
				x=a[k-1];
				a[k-1]=a[k];
				a[k]=x;
				i++;
 
				i=k-1;
			}
			i++;
		}
		/*mise à zéro(en passant d'une colonne à l'autre)*/
		for(i=0;i<n;i++)
		a[i]=t[i];
 
 
 
	}[/code]