Bloqué au début de mon algo [Résolu]

Signaler
Messages postés
19
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
14 mars 2007
-
Messages postés
19
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
14 mars 2007
-
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é)

Yann

4 réponses

Messages postés
19
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
14 mars 2007

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
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
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

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
173
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
10 mai 2010

Oui... A quoi ça peut servir un alogo comme ça? c'est un tp... non?
Messages postés
19
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
14 mars 2007

Oui c'est un tp,pour nous entrainer a utiliser les itérations