Xxxxxx

Résolu
Utilisateur anonyme -  
JooS Messages postés 2705 Statut Membre -
Bonjour,

On considère deux tableaux(tab_p et tab_i) de dimension 5.Ces tableaux doivent contenir des entiers.
-tab_p doit contenir les chiffres pairs.
-tab_i doit contenir les chiffres impairs.

1\Faire un programme qui permet de remplir selon le mécanisme suivant:
-Il faut lire un entier au clavier
-Si la valeur est paire on remplit tab_p
-Sinon la valeur est impaire on remplit tab_i

2\parcourir chacun de ces tableaux à l'aide des pointeurs pour afficher ces valeurs comme suit:
tab_pair tab_i
. .
. .
. .
. .

NB:résoudre cet exo sans utiliser les fonctions et signaler de ne rentrer que des entiers impairs quand le tableau des chiffres pairs est plein.

AIDER MOI AU PLUS VITE SVP à résoudre cet exo :(

3 réponses

Résumé de la discussion

Le sujet porte sur le remplissage de deux tableaux de 5 entiers, tab_p pour les chiffres pairs et tab_i pour les chiffres impairs, puis leur affichage via des pointeurs. Il faut lire chaque valeur, la placer dans tab_p si elle est paire et dans tab_i sinon, tout en incrémentant les indices dédiés et en évitant les dépassements d’indice. En pratique, il est crucial d'utiliser deux compteurs distincts et de vérifier systématiquement que leur valeur reste dans les limites des tableaux, afin d’éviter les accès hors limites et de garantir une saisie cohérente.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. JooS Messages postés 2705 Statut Membre 228
     
    Salut, qu'est ce que t'as pu faire jusque la, ??
    0
    1. Utilisateur anonyme
       
      slt voici le code que j ai débuté pour l instant


      #include <stdio.h>
      #include <stdlib.h>

      int main()
      {int tab_p[5]; int tab_i[5]; int i=0; int val; int i_p=0,i_i=0;
      while(i<10){
      printf("entrer une valeur entiere: ");
      scanf("%d",&val);
      i++;
      if(val%2==0){
      tab_p[i_p]=val;

      i++;}
      else{
      tab_i[i_i]=val;

      i_i++;
      }
      0
    2. oliver3923 Messages postés 1059 Statut Membre 143
       
      salut

      commence par indenter ton code
      décales tes blocs d'une tabulation a la fois ca sera beaucoup plus lisible
      pour tes variables pas besoin de mettre int a chaque fois tu met int tu déclare ta variable (en l'initialisant éventuellement) une virgule la seconde variable... puis un point virgule

      if(val%2==0)
      {
      tab_p[i_p]=val;
      i++;
      }

      else
      {
      tab_i[i_i]=val;
      i_i++;
      }

      tu a mélangé tes indices
      si val est pair tu le place a l'indice i_p de ton tableau pair puis tu incrémente i
      sinon tu le place a l'indice i_i de ton tableau impair puis tu incrémente i_i

      or tu dois incrémenter i a chaque fois que tu rempli une case de ton tableau
      tu dois également incrémenter i_p quand tu place une valeur dans ton tableau pair

      donc il faut que tu incrémente i a l'extérieur de ta condition donc après ton else

      de plus une fois que l'un des tableaux est plein tu devrais rajouter une boucle pour la saisie afin de t'assurer que la valeur saisie est correcte sinon tu auras une erreur pour accéder a ton tableau

      imaginons que tu entre 5 entier pairs
      ton indice i_p sera donc a 4 (la dernière case de ton tableau) donc si tu rentre par erreur un 6° entier pair, ton code essaiera d'accéder a l'indice 5 qui n'existe pas et ton programme plantera


      commence par rectifier la facon dont tu incrémente tes indices regarde si ca marche en faisant attention et si c'est bon rajoute la bonne boucle lorsque tu demande d'entrer une valeur pour pouvoir au début rentrer des nombres pairs ou impairs puis uniquement pair ou uniquement impair en fonction du premier tableau qui sera rempli
      0
    3. Utilisateur anonyme
       
      mais comment j ai fait pour ne po voir ton explication dès le début ;c est po croyable!!!! OLIVER vous avez vu tout de suite k je suis un débutant en C en faite je l ai commencé ça ne fait po longtemps mais vs m avez beaucoup aidé ici MERCI!!!!!!!!!!
      0
    4. oliver3923 Messages postés 1059 Statut Membre 143
       
      c'est pas grave tkt

      dis nous si ca marche
      0
    5. Utilisateur anonyme
       
      ok je ne manquerai po de vous informer mais il faut k j'installe Borland C++ car ça ne marche po sur Dev-C++ .
      0
  2. JooS Messages postés 2705 Statut Membre 228
     
    Essaye ça ...

    #include <stdio.h>     
    
    void main() {     
      int tab_p[5], tab_i[5], p=0, i=0, nbr;     
      tab_p[4] = NULL;     
      tab_i[4] = NULL;     
    
      while(i+p < 10) {     
         if(!tab_p[4] && !tab_i[4]) printf("Donner un nombre entier : ");         
         else if(!tab_p[4] && tab_i[4]) printf("Donner un nombre pair : ");            
         else printf("Donner un nombre impair : "); 
         scanf("%d",&nbr);      
         //----------------     
         if(nbr%2 == 0) {     
            tab_p[p] = nbr;     
            p++;     
         }     
         else {     
            tab_i[i] = nbr;     
            i++;     
         }     
      }     
    
      scanf("\n");     
    }


    PS : J'ai pas pu l'essayer vu que mon compilateur bug tros ...
    0
  3. Utilisateur anonyme
     
    j ai essayé mais ça ne marche toujours pas.je vais essayer trouver l erreur.t es vraiment gentil t es un ange!!!!!!!
    0
    1. JooS Messages postés 2705 Statut Membre 228
       
      t'as quoi comme compilateur, parce que la plupart affichent la ligne ou se trouve l'erreur !!!
      0
    2. Utilisateur anonyme
       
      le compilateur s'arrête ici: tab_p[4] = NULL; et je ne sais po pourquoi?
      0
    3. Utilisateur anonyme
       
      j ai DEV-C++
      0
    4. oliver3923 Messages postés 1059 Statut Membre 143
       
      je ne suis pas sur qu'on puisse déclarer un entier a null

      vire ces deux lignes pour voir ce qui se passe

      de plus tu le fait 2 fois^^ (faut changer le nom du second)
      0
    5. JooS Messages postés 2705 Statut Membre 228
       
      oups, le second est pour tab_i
      0