Programme en C
Fermé
saraseff
Messages postés
125
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013
-
12 janv. 2010 à 21:31
saraseff Messages postés 125 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 27 avril 2013 - 13 janv. 2010 à 00:06
saraseff Messages postés 125 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 27 avril 2013 - 13 janv. 2010 à 00:06
A voir également:
- Programme en C
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Mettre en veille un programme - Guide
- Programme démarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
6 réponses
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
12 janv. 2010 à 21:48
12 janv. 2010 à 21:48
Voici un algo non optimisé, quoique:
Bon code.
Soit 2 indices i = 0 et j Pour j = 0 jusqu'à la fin du tableau Si tab[j] != 0 Alors tab[i] = tab[j] et i = i+1 Pour i jusqu'à la fin du tableau tab[i] = 0;Par très compliqué, isn't !
Bon code.
saraseff
Messages postés
125
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013
2
12 janv. 2010 à 22:22
12 janv. 2010 à 22:22
pourquoi tab[i]=0? ce n'est pas tab[i]=tab[i+1] ?
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
12 janv. 2010 à 22:32
12 janv. 2010 à 22:32
Je ne sais pas ce que tu veux faire exactement; une fois le tableau 'tassé', il y a 2 solutions:
- le tableau conserve la même dimension et on remplit la fin du tableau avec des '0 (c'est ce que j'ai supposé),
- le tableau est 'raccourci' et on lui donne la dimension du dernier élément non nul.
A toi de décider.
- le tableau conserve la même dimension et on remplit la fin du tableau avec des '0 (c'est ce que j'ai supposé),
- le tableau est 'raccourci' et on lui donne la dimension du dernier élément non nul.
A toi de décider.
saraseff
Messages postés
125
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013
2
12 janv. 2010 à 22:29
12 janv. 2010 à 22:29
dSL j'ai essayé mais sa n'a pas marché!
saraseff
Messages postés
125
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013
2
12 janv. 2010 à 22:42
12 janv. 2010 à 22:42
En fait je veux faire la deuxième proposition c'est pour cela j'ai supposé une autre variable s que j'incrémente à chaque fois que je trouve un zéro !mai j'ai essayé dans mon prog mais sa ne marche pas sa me done que des zéros :s
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
12 janv. 2010 à 22:49
12 janv. 2010 à 22:49
La taille du tableau, dans l'algorithme donné sera le dernier élément + 1, c'est à dire 'i' en fin de boucle. Je ne vois pas la difficulté, l'algorithme se réduit donc à:
Soit 2 indices i = 0 et j Pour j = 0 jusqu'à la fin du tableau Si tab[j] != 0 Alors tab[i] = tab[j] et i = i+1Bonne réflexion.
saraseff
Messages postés
125
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013
2
>
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
12 janv. 2010 à 22:58
12 janv. 2010 à 22:58
Oui mais si tab[j]==0 ??? c'est en fait sa mon problème je veux supprimer les zéros de mon tableau sans avoir recours à un autre tableau
saraseff
Messages postés
125
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013
2
>
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
12 janv. 2010 à 23:02
12 janv. 2010 à 23:02
Bon j'ai encore une fois essayé comme ceci mais sa ne marche pas parfaitement seulement pour les premières cases!
for(i=0;i<taille;i++)
{
if(tab[i]!=0)
{
tab[cpt]=tab[i];
cpt++;
}
}
for(i=0;i<taille;i++)
{
if(tab[i]!=0)
{
tab[cpt]=tab[i];
cpt++;
}
}
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
>
saraseff
Messages postés
125
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013
12 janv. 2010 à 23:57
12 janv. 2010 à 23:57
Mais si, ça marche, je te donne un exemple:
Bonne réflexion et bonne nuit.
#include <stdio.h> #include <stdlib.h> #define TAILLE 8 int main(int argc, char *argv[]) { int i, cpt; int tab[TAILLE] = { 1, 2, 0, 3, 4, 0, 5, 0 }; for (i=cpt=0; i<TAILLE; i++) if(tab[i]) tab[cpt++] = tab[i]; for (i=0; i<cpt; i++) printf ("%d ", tab[i]); printf (" cpt=%d\n", cpt); return EXIT_SUCCESS; } [loupius@p3000]$ gcc -Wall essai.c [loupius@p3000]$ ./a.out 1 2 3 4 5 cpt=5 [loupius@p3000]$Au lieu d'utiliser les balise 'gras', utilise plutôt les balises 'code'.
Bonne réflexion et bonne nuit.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
saraseff
Messages postés
125
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013
2
12 janv. 2010 à 22:45
12 janv. 2010 à 22:45
cpt=0;
for(i=0;i<taille;i++)
{
if(tab[i]!=0)
{
tab[cpt]=tab[i];
cpt++;
}
}
for(cpt=0;cpt<taille;cpt++)
{
tab[cpt]=0;
}
printf("voici votre tableau:\n");
for(i=0;i<taille;i++)
printf("%d",tab[i]);
Voilà ce que j'ai fait mais comme je t'ai dit sa ne marche pas est-ce que tu as une idée !
for(i=0;i<taille;i++)
{
if(tab[i]!=0)
{
tab[cpt]=tab[i];
cpt++;
}
}
for(cpt=0;cpt<taille;cpt++)
{
tab[cpt]=0;
}
printf("voici votre tableau:\n");
for(i=0;i<taille;i++)
printf("%d",tab[i]);
Voilà ce que j'ai fait mais comme je t'ai dit sa ne marche pas est-ce que tu as une idée !
saraseff
Messages postés
125
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013
2
13 janv. 2010 à 00:06
13 janv. 2010 à 00:06
merci louoius sa marche maintenant ;) tu me sauves