Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS C FAQs C TUTORIELS C LIVRES C COMPILATEURS C SOURCES GTK+
next up previous contents index
Next: Passage de paramètres Up: Les pointeurs Previous: Différence de deux pointeurs

Exercice

Déclarer et initialiser statiquement un tableau d'entiers t avec des valeurs dont certaines seront nulles. Écrire une procédure qui parcoure le tableau t et qui imprime les index des éléments nuls du tableau, sans utiliser aucune variable de type entier. Une solution possible est donnée page suivante.

#include <stdio.h>

#define N 10
int t[N] = {1,2,0,11,0,12,13,14,0,4};

/*****************************************************************************/
/*                                                                           */
/*                              print1                                       */
/*   Premiere version                                                        */
/*                                                                           */
/*****************************************************************************/
void print1()
{
int *pdeb,*pfin,*p;

pdeb = &t[0];      /*   repère le premier élément de t   */
pfin = &t[N-1];    /*   repère le dernier élément de t   */

for (p = pdeb; p <= pfin; p++)
   if (*p == 0) printf("%d ",p - pdeb);
printf("\n");
}

/*****************************************************************************/
/*                                                                           */
/*                              print2                                       */
/*   Une autre version                                                       */
/*                                                                           */
/*****************************************************************************/
void print2()
{
int *pdeb,*pfin,*p;

pdeb = &t[0];     /* repère le premier élément de t                          */
pfin = pdeb + N;  /* repère l'élément (fictif) apres le dernier élément de t */

for (p = pdeb; p < pfin; p++)
   if (*p == 0) printf("%d ",p - pdeb);
printf("\n");
}

/*****************************************************************************/
/*                                                                           */
/*                              main                                         */
/*                                                                           */
/*****************************************************************************/
int main()
{
print1();
print2();
}



Bernard Cassagne
1998-12-09
Responsable bénévole de la rubrique C : Arnaud Feltz (buchs) - Contacter par EMail :
Vos questions techniques : forum d'entraide C - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.