Bonjour à tous,
Voila on me demande de remplir 2 vecteur puis de trier leur elements de manière croissante.
Pour l'un je doit utiliser le tri par extraction et pour l'autre le tri par permutation.
Mais j'ai plusieurs problèmes:
1) Le tri par permutation marche mais il m'affiche les elements dans l'ordre décroissant
2)Le tri par extraction m'affiche comme erreur pour la ligne 83 et 84 : "left operand must be l-value"
3)Ensuite on me demande, lorsque tout est trie, de faire la moyenne des elements du vecteurs 1 puis du vecteur 2 et de mettre les element de ces 2 vecteur dans un troisieme vecteur seulement si il sont superieur a la moyenne et de supprimmer ceux qui apparaissent plusieurs fois :-o
Voila, pour le 3 je ne sais pas du tout comment m y prendre.
Si vous pouviez m'aider en essayant de faire simple, sachant que je n'ai pas encore vu les fonction et autre truc plus rapide....
Merci beaucoup
Voila mon programme :
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int vec1[50];
int vec2[50];
int vec3[50];
int nbel1, nbel2, tmp, max;
int i;
srand( (unsigned)time( NULL ) );
/* Saisie du nombre d'éléments des vecteurs */
do
{
printf("Entrez le nombre d elements du VECTEUR 1\n");
fflush(stdin);
scanf("%d", &nbel1);
if(nbel1 <= 0)
{
printf("LE VECTEUR DOIT CONTENIR AU MINIMUM UN ELEMENT\n\n");
}
}while(nbel1 <= 0);
do
{
printf("Entrez le nombre d elements du VECTEUR 2\n");
fflush(stdin);
scanf("%d", &nbel2);
if(nbel2 <= 0)
{
printf("LE VECTEUR DOIT CONTENIR AU MINIMUM UN ELEMENT\n\n");
}
}while(nbel2 <= 0);
/* Tri vecteur par permutation */
printf("Vecteur 2 : ");
for(i=0; i<nbel2; i++)
{
vec2 = (rand()%10) + 10;
printf("%d ", vec2);
}
printf("\nVecteur 1 trie : ");
while(vec2[nbel2-1] > 0)
{
i = 0;
while(i < vec2[nbel2-1])
{
if(vec2 > vec2[i+1])
{
tmp = vec2[i+1];
vec2[i+1] = vec2;
vec2 = tmp;
}
i++;
}
nbel2--;
printf("%d ", vec2);
}
/* Tri par extraction */
printf("Vecteur 1 : ");
for(i=0; i<nbel1; i++)
{
vec1 = (rand()%10) + 10;
printf("%d ", vec1);
}
printf("\nVecteur 1 trie : ");
while(nbel1 > 0)
{
i=2;
while(nbel1-1 < nbel1-i)
{
max = nbel1 - 1;
if(max < nbel1-i)
{
tmp = nbel1-i;
nbel1-i = nbel1-1;
nbel1-1 = tmp;
}
i++;
}
nbel1--;
}
}