Darksnakes
Messages postés19Date d'inscriptionsamedi 21 octobre 2006StatutMembreDernière intervention14 mars 2007
-
21 oct. 2006 à 17:25
Darksnakes
Messages postés19Date d'inscriptionsamedi 21 octobre 2006StatutMembreDernière intervention14 mars 2007
-
25 oct. 2006 à 10:15
Bonjour tout le monde, je débute en C et voila mon problème
J'aimerais faire un programme qui pour un tableauT[0..N] (toutes les cases initialisés à 1)et un nombre P, me met un 0 toutes les P cases, sachant que: on démare de T[0]
le tableau finale doit contenir que des 0
dès qu'une case obtient la valeurs 0 elle ne compte plus dans la recherche de la P ème case suivante
je redémare à la première case se trouvant à droite et contenant un 1 de celle que je vient de mettre à 0
je dois afficher l'indice de la case que je met à 0 à chaques fois.
Exemple si mon tableau fait 7 cases(N=6) et que p= 12, l'algorithme m'affichera successivement 4, 3, 6, 5, 2, 1, 0 et mon tableau 1111111 deviendra
1111011
1110011
1110010
1110000
1100000
1000000
0000000
Le seule problème c'est que je ne sais pas comment démarer, je me mélange les pinceaux:
Donc si vous avez une piste pour moi, ce serait cool sachant que je ne connais du C que les rudiments(sa fait à peine deux semaines que j'ai commené)
Darksnakes
Messages postés19Date d'inscriptionsamedi 21 octobre 2006StatutMembreDernière intervention14 mars 2007 25 oct. 2006 à 10:15
Bon ben c'est bon j'y suis arrivé, voilà le progrmamme au cas ou cela interresserai certaines personnes!!
#include <stdio.h>
void affichage (int n, int t[])
{
int i;
for (i=0;i<n;i++)
{
printf("%d ",t[i]);
}
printf("\n");
}
void intialisation (int n, int t[])
{
int i;
for (i=0;i<n;i++)
{
t[i]=1;
}
}
int main()
{
int i,j,n,p,compteur,compteur2;
printf("Donner un entier n :\n");
scanf ("%d",&n);
printf("Donner un entier p :\n");
scanf ("%d",&p);
int t [n];
intialisation (n,t);
printf("Voici le tableau a l'etat initial: ");
affichage (n,t);
i=0;
compteur=0;
compteur2=0;
while (compteur2<n)
{
while (compteur
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 21 oct. 2006 à 18:16
D'abord on pourrait se demander l'utilité d'un tel algorithme (il y a plus simple pour remplir un tableau avec des 0...).
Cela dit ca ne me semble pas si difficile:
-Tu utilises un pointeur (ou bien un index) qui représente l'emplacement courant.
-Ensuite, tu te fais une fonction suivant() qui avant d'une position (c'est a dire qui avance jusqu'a trouver un 1). Tu appelles donc p fois avancer (dans avancer il faut aussi vérifier les débordements).
-A chaque fois que tu écris un 0, tu incrémentes un varaible (initialisée à 0) et tu as fini quand ca variable contient N.
Attention, si tu veux un tableau contenant T[0]...T[N], il faut le déclarer de taille N+1