Programme en C : repetition des resultats

Sonbole Messages postés 13 Statut Membre -  
amateur_gadget Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Bonjour,

voici un programme en c qui saisit la dimension d'un tableau, remplit le tableau par des nombres entiers positifs puis crée deux tableau : le premier est formé de nombre paires et le deuxième est formé de nombre impaires.

le probleme c'est apres la compilation , les resultas sont répété voici une image :

https://imageshack.com/

le programme :


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

#include <windows.h> 

int main(int argc, char *argv[]) 
{ 

   
  int t[100],a[100],b[100],i,j,nbr1=0,nbr2=0,k,n; 
  printf("saasir n  :"); 
  scanf("%d",&n); 
    
  for(i=1;i<=n;i++) 
  { printf("t[%d]   :",i); 
  scanf("%d",&t[i]); 
  if (t[i]%2==0) 
  nbr1=nbr1+t[i]; 
  else  
  nbr2=nbr2+t[i]; 
   
} 


//boucle dt traitement 
for(i=1;i<=n;i++) 
{ for(j=1;j<=nbr1;j++) 

{  
 if (t[i]%2==0) 
{ a[j]=t[i]; 
printf("le table %d\n",a[j]); 
}}} 
for(i=1;i<=n;i++) 
{  
   for(k=1;k<=nbr2;k++) 

{  if (t[i]%2==1) 
  {  
          b[k]=t[i]; 
   printf(" IMPAIRE %d\n",b[k]); 
}}} 

   
  
system(" pause ");  
  return 0; 
}


merci d'avance

2 réponses

  1. amateur_gadget Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   4
     
    Voiçi la correction de ton code :
    #include <stdio.h>
    #include <stdlib.h>

    #include <windows.h>

    int main(int argc, char *argv[])
    {

    int t[100],i,j=1,nbr1=0,nbr2=0,n;
    printf("saisir n :");
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    { printf("t[%d] :",i);
    scanf("%d",&t[i]);
    if (t[i]%2==0)
    nbr1=nbr1+1;
    else
    nbr2=nbr2+1;

    }
    int a[nbr1],b[nbr2]; // sinon c'est quoi l'intérêt de savoir la taille du tableau

    //boucle de traitement
    j=1;
    for(i=1;i<=n;i++)
    {
    if (t[i]%2==0)
    { a[j]=t[i];
    j++; // ici tu incrémente l'indice de ton tableau
    }}
    j=1; // initialisé ton indice de nouveau
    for(i=1;i<=n;i++)
    {
    if (t[i]%2==1)
    {
    b[j]=t[i];
    j++;
    }
    }
    // affichage
    for (j=1;j<=nbr1;j++)
    printf("PAIRE[%d] = %d\n",j,a[j]);
    for (j=1;j<=nbr2;j++)
    printf("IMPAIRE[%d] = %d\n",j,b[j]);

    system(" pause ");
    return 0;
    }
    1
    1. Sonbole Messages postés 13 Statut Membre
       
      merci bcp bcp ^^ il est completement parfait mais tu peux m'expliquer pourquoi tu as utilisé la biliothéque <windows.h> , merci <ta repense a été utile >
      0
    2. amateur_gadget Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   4
       
      il y a pas de quoi je n'est pas utilisé la bibliothèque math.h j'ai recopier ton code au début j'ai pas vu et tu peux l'éliminer et tout fonctionnera bien :)
      0
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    On ne sait pas ce que tu veux faire, mais vu ton code c'est normal que ça se répète.
    Aligne mieux tes accolades tu y verras peut-être plus clair...
    0