C

Résolu
moncef -  
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,voici mon code,mais le resultat de l'execution est null !! i need help
merci d'avant!


#include<conio.h>
#include<stdio.h>
#define nmax 100
void main()
{
int tab1[nmax],tab2[nmax],tmax[nmax],tmin[nmax],i,max,min,n;
clrscr();

do{
printf("Donnez le nombre d'‚l‚ments :");
scanf("%d",&n);
}while(n<0 || n>nmax);
/*remplisssage du tab 1*/
printf("Tableau nø1 :\n");
for(i=0; i<n; i++)
{
printf("Tab[%d] :",i);
scanf("%d",&tab1[i]);
}
/*remplissage du tab 2*/
printf("Tableau nø2 :\n");
for(i=0; i<n; i++)
{
printf("Tab[%d] :",i);
scanf("%d",&tab2[i]);
}
/*determination du max et de min*/

for(i=min=max=0; i<n; i++)
{
if(tab1[i]>tab2[i])
{
tmax[max] = tab1[i];
max++;
tmin[min] = tab2[i];
min++;
}
else
{
tmax[max] = tab2[i];
max++;
tmin[min] = tab1[i];
min++;
}
}

/*affichage des resultas*/

printf("\t\t MAX TAB :\n\n");
for(i=0; i<n; i++)
{
printf("%d\n",tmax[max]);
}
printf("\t\t MIN TAB :\n\n");
for(i=0; i<n; i++)
{
printf("%d\n",tmin[min]);
}

getch();
}

2 réponses

mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Il y a plein de choses qui ne vont pas.

Je passe sur le fait que <conio.h> et clrscr ne sont pas standard et sur le fait que ton main est sensé retourné un code d'erreur entier (0 si tout va bien).
    /*determination du max et de min*/
    for(i=min=max=0; i<n; i++)
    {
        if(tab1[i]>tab2[i])
        {
            tmax[max] = tab1[i];
            max++;
            tmin[min] = tab2[i];
            min++;
        }
        else
        {
            tmax[max] = tab2[i];
            max++;
            tmin[min] = tab1[i];
            min++;
        }
    }

Si on lit cette section min et max sont systématiquement incrémenté et valent donc... i. Outre le fait que les variables min et max ne servent du coup à rien, je doute que ce soit ce que tu veux faire à moins que le but du programme soit de calculer tmax = {max(t1[i],t2[i]}_i et tmin = {min(t1[i],t2[i]}_i. Mais à ce moment là autant écrire
for(i=0;i<n;++i){
  if(t1[i] < t2[i]){
    tmin[i] = t1[i];
    tmax[i] = t2[i];
  }else{
    tmin[i] = t2[i];
    tmax[i] = t1[i];
  }
}

Ensuite dans tes boucles d'affichage tu incrémentes i alors que tu examines les tableaux à l'index min/max qui lui ne varie pas. Tu affiches donc n fois la case tmin[min] et tmax[max]... Je doute que ce soit le but :-)

Bonne chance
0
moncef
 
merci bcp fréro !! ^^
et voici le code :


#include<conio.h>
#include<stdio.h>
#define nmax 100
void main()
{
int tab1[nmax],tab2[nmax],tmax[nmax],tmin[nmax],i,max,min,n;
clrscr();

do{
printf("Donnez le nombre d'‚l‚ments :");
scanf("%d",&n);
}while(n<0 || n>nmax);
/*remplisssage du tab 1*/
printf("Tableau nø1 :\n");
for(i=0; i<n; i++)
{
printf("Tab[%d] :",i);
scanf("%d",&tab1[i]);
}
/*remplissage du tab 2*/
printf("Tableau nø2 :\n");
for(i=0; i<n; i++)
{
printf("Tab[%d] :",i);
scanf("%d",&tab2[i]);
}
/*determination de max et min*/

for(i=min=max=0; i<n; i++)
{
if(tab1[i]<tab2[i])
{
tmax[i] = tab2[i];
max++;
tmin[i] = tab1[i];
min++;
}
else
{
tmax[i] = tab1[i];
max++;
tmin[i] = tab2[i];
min++;
}
}

/*affichage des resultas*/

printf("\t\t MAX TAB :\n\n");
for(i=0; i<max; i++)

printf("%d\n",tmax[i]);

printf("\t\t MIN TAB :\n\n");
for(i=0; i<min; i++)

printf("%d\n",tmin[i]);


getch();
}
0
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Je maintiens que les variables min et max ne servent toujours à rien, mais là ça doit marcher.

Bonne chance
0