1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| #include <stdio.h>
#include <stdlib.h>
#define SOMME_MAX 10
void tri_maximum (float * tab, size_t size, int order);
int main(void)
{
float c1,c2,resultat;
int i,j;
int lim=SOMME_MAX*100;
int o = 0;
int k = 0;
float *t = malloc((SOMME_MAX*SOMME_MAX)*sizeof *t);
FILE* data=fopen("resultats.txt","w");
FILE* tri=fopen("tri.txt","w");
printf("\nValeur de la cote 1 :");
scanf("%f",&c1);
printf("\nValeur de la cote 2 :");
scanf("%f",&c2);
for ( i=1 ; i<=lim ; i++)
{
for ( j=1 ; j<=lim ; j++ )
{
resultat=( i*0.01*(c1-3)+j*0.01*(c2-3) );
if ( (resultat>0)&&(((i!=0)||(j!=0))&&((i!=0)&&(j!=0))) )
{
fprintf(data,"\n| m1=%f | m2=%f | gain.E1=%f | gain.E2=%f | gain.E=%f |", (0.01*i), (0.01*j), ((0.01*i)*(c1-2)-(0.01*j)), ((0.01*j)*(c2-2)-(0.01*i)), ( ((0.01*i)*(c1-2)-(0.01*j))+((0.01*j)*(c2-2)-(0.01*i)) ));
t[k]=( ((0.01*i)*(c1-2)-(0.01*j))+((0.01*j)*(c2-2)-(0.01*i)) );
k++;
}
}
}
getchar();
tri_maximum (t, k, 1);
for (o = 0; o < k; o++)
{
printf("\n%f", t[o]);
fprintf (tri,"\n%f", t[o]);
}
fclose(data);
fclose(tri);
}
void tri_maximum (float * tab, size_t size, int order)
{
size_t i = 0;
size_t j = 0;
if (tab != NULL && size > 1)
{
/* Parcours du tableau. */
for (i = size - 1; i > 0; i--)
{
/* Recherche du maximum. */
size_t max = i;
for (j = 0; j <= i; j++)
{
if (order == 0)
{
if (tab[j] > tab[max])
{
max = j;
}
}
else
{
if (tab[j] < tab[max])
{
max = j;
}
}
}
/* Echange des valeurs du tableau. */
{
float tmp = tab[i];
tab[i] = tab[max];
tab[max] = tmp;
}
}
}
} |
Partager