Rechercher : dans
Par :

Language C

Dernière réponse le 23 mar 2009 à 21:55:55 Abc, le 23 mar 2009 à 12:31:10 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 3.0.1

Meilleures réponses pour « language C » dans :
Langage C++ - Les types de données Voir Les types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les types de données Voir Les types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Langage C - Les chaînes de caractères Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Les files en langage C VoirLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...
Les classes en langage C++ VoirLa notion d'objet Le langage C est un langage procédural, c'est-à-dire que c'est un langage permettant de définir des données grâce à des variables, et des traitements grâce aux fonctions. L'apport principal du langage C++ par rapport au...

1

fiddy, le 23 mar 2009 à 12:56:25

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;
}

Google is your friend

Répondre à fiddy

2

InTeK, le 23 mar 2009 à 13:09:24

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 !

Répondre à InTeK

3

fiddy, le 23 mar 2009 à 13:11:06
  • +1

Salut,
Dans ta boucle while, il ne faut pas oublier d'incrémenter la variable i.

Répondre à fiddy

4

Abc, le 23 mar 2009 à 13:56:15

Merci mais je veut faire ce programme avec le boucle while

Répondre à Abc

5

fiddy, le 23 mar 2009 à 14:01:43

Avec la boucle while :

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

Google is your friend

Répondre à fiddy

6

 Abc, le 23 mar 2009 à 21:55:55

MERCI*10000000000000

Répondre à Abc