IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Précision sur les tableaux


Sujet :

C

  1. #1
    Membre régulier Avatar de chicabonux
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2007
    Messages : 329
    Points : 73
    Points
    73
    Par défaut Précision sur les tableaux
    Bonjour,

    je voudrais effacer toutes les occurences de la valeur 0 dans un tableau à dimension N où les valeurs sont tapées au clavier . Je dois aussi tasser les éléments restants .
    J'ai écrit ce code qui ne fonctionne pas et j'aimerais savoir pourquoi ?

    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
    #include<stdio.h>
     
    int main()
    {
    	int tab[100];
    	int i,N;
     
    	printf("introduire la dimension N du tableau : ");
    	scanf("%d",&N);
     
    	for(i=0;i<N;i++)
    	{
    		printf("introduire une valeur pour tab[%d] : ",i);
    			scanf("%d",&tab[i]);
    	}
     
    	for(i=0;i<N;i++)
    		printf("%7d",tab[i]);
    	printf("\n");
     
    	if(tab[i]!=0)
    		printf("%d",tab[i]);
    	printf("\n");
     
    	return 0;
    }

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ce code est hors de toute boucle...
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	if(tab[i]!=0)
    		printf("%d",tab[i]);
    Si tu veux "tasser", il te faut utiliser deux indexes i et j, au lieu d'un seul. Un qui servira en lecture, un en écriture.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Points : 852
    Points
    852
    Par défaut
    Bonjour,

    Déjà pour t'y retrouver dans la console, insère un fflush(NULL); après tes printfs, cela permet de vider le buffer. Sinon tout arrive en même temps à la fin de la boucle.

    A la fin je suppose que tu veut afficher toutes les valeurs différentes de 0, cela dit le if n'est pas dans ta boucle for, en effet seul la première ligne après un opérateur (ici for) est prise en compte comme faisant partie des {} en l'absence de celles ci, l'indentation permet de t'y retrouver.
    Si tu n'est pas sûr, met toujours des {}.

    Attention : tu demandes combien de données tu veut entrer, sachant que ton tableau et de taille 100, fait en sorte que l'utilisateur ne puisse pas dépasser cette taille (condition...).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableau]imcompréhension sur les tableaux
    Par Burinho dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 13/12/2005, 09h33
  2. Précisions sur les recordset DAO
    Par Igricheff dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/01/2005, 17h16
  3. Précision sur les sauvegarde à chaud
    Par alxkid dans le forum Administration
    Réponses: 2
    Dernier message: 09/08/2004, 18h55
  4. Article sur les tableaux dynamiques
    Par Eric Sigoillot dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2004, 22h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo