Xxxxxx
RésoluJooS Messages postés 2705 Statut Membre -
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
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.
-
-
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++;
} -
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 -
-
-
-
-
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 ... -
j ai essayé mais ça ne marche toujours pas.je vais essayer trouver l erreur.t es vraiment gentil t es un ange!!!!!!!