Xxxxxx

Résolu
Utilisateur anonyme -  
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   -
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 :(



A voir également:

3 réponses

JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Salut, qu'est ce que t'as pu faire jusque la, ??
0
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
oliver3923 Messages postés 971 Date d'inscription   Statut Membre Dernière intervention   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
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
oliver3923 Messages postés 971 Date d'inscription   Statut Membre Dernière intervention   143
 
c'est pas grave tkt

dis nous si ca marche
0
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
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   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
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
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
t'as quoi comme compilateur, parce que la plupart affichent la ligne ou se trouve l'erreur !!!
0
Utilisateur anonyme
 
le compilateur s'arrête ici: tab_p[4] = NULL; et je ne sais po pourquoi?
0
Utilisateur anonyme
 
j ai DEV-C++
0
oliver3923 Messages postés 971 Date d'inscription   Statut Membre Dernière intervention   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
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
oups, le second est pour tab_i
0