Programme en C : repetition des resultats

Fermé
Sonbole Messages postés 10 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 9 juillet 2011 - Modifié par Sonbole le 2/07/2011 à 17:47
amateur_gadget Messages postés 29 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 8 février 2012 - 2 juil. 2011 à 18:17
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

amateur_gadget Messages postés 29 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 8 février 2012 4
2 juil. 2011 à 17:45
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
Sonbole Messages postés 10 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 9 juillet 2011
2 juil. 2011 à 18:14
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
amateur_gadget Messages postés 29 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 8 février 2012 4
2 juil. 2011 à 18:17
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
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
2 juil. 2011 à 04:04
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