Posez votre question Signaler

Language C [Résolu]

Abc - Dernière réponse le 23 mars 2009 à 21:55
Bonjour,
salut tous le monde ,j'ai eu une deffuculte au niveau de resolution de ce prog j'espere que vous pouvez m'aider a degager l'erreur . MERCI
EXERCICE:
Ecrire un programme qui lit un entier X et un tableau A du type int au clavier et élimine toutes les occurrences de X dans A en remplacent les occurences par 0.
#include<stdio.h>
void main()
{
int a[100],x,i,n;
printf("donner la taille du tableau\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("donner l'element d'indice %d\n",i);
scanf("%d",a+i);
}
printf("donner l'ntier a ecraser");
scanf("%d",&x);
i=0;
while(*(a+i)==x)
{
*(a+i)=0;
i++;
}
for(i=0;i<n;i++)
{
printf("le tableau apres ecrasage est %d",a[i]);
}
}
MERCI D'AVENCE
Lire la suite 

Language C »

6 réponses
Réponse
+0
moins plus
Salut,
Voici en gras, les corrections apportées :
#include<stdio.h>

int main(void)
{
    int a[100],x,i,n;
    printf("donner la taille du tableau\n");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        printf("donner l'element d'indice %d\n",i);
        scanf("%d",a+i);
    }

    printf("donner l'ntier a ecraser");
    scanf("%d",&x);

    for(i=0;i<n;i++)
    {
        if(a[i]==x)
            a[i]=0;
    }

    for(i=0;i<n;i++)
    {

        printf("le tableau apres ecrasage est %d",a[i]);
    }

    return 0;
}
Ajouter un commentaire
Réponse
+0
moins plus
L'erreur est dans ta boucle while, et plus précisemment, dans la condition :
i=0;
while(*(a+i)==x)
{
*(a+i)=0;
i++;
}
Relie ce que tu as écrit, cela t'aidera à comprendre ton erreur.


Il faut simplement que tu parcourres ton tableau :
for (i = 0; i < n; i++)
if (a[i] == x)
a[i] = 0;

ou alors, avec un while :
i = 0;
while (i < n)
if ( *(a+i) == x)
*(a+i) = 0;

C'est juste une erreur d'inattention, comme on en fait tous. Bonne programmation !
Abc - 23 mars 2009 à 13:56
merci mais je veut faire ce programme avec le boucle while
fiddy - 23 mars 2009 à 14:01
Avec la boucle while :
i=0;
while(i<n) {
   if(a[i]==x)
       a[i]==0;
   i++;
}
Abc - 23 mars 2009 à 21:55
MERCI*10000000000000
Ajouter un commentaire
Ce document intitulé « language C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook