forked from menault/2026_TD3_DEV51_Qualite_Algo
Optimiser F10 en conservant la fin du rapport
This commit is contained in:
@@ -300,23 +300,13 @@ int categorie(const Transaction *t)
|
||||
}
|
||||
|
||||
/* F10 : ajoute une ligne à la fin du rapport */
|
||||
int longueur(const char *s)
|
||||
/* fin_rapport désigne le '\0' courant ; l'appelant conserve la nouvelle fin. */
|
||||
char *ajouter_ligne(char *fin_rapport, const char *ligne)
|
||||
{
|
||||
int n = 0;
|
||||
while (s[n] != '\0')
|
||||
n++;
|
||||
return n;
|
||||
}
|
||||
|
||||
void ajouter_ligne(char *rapport, const char *ligne)
|
||||
{
|
||||
int fin = longueur(rapport);
|
||||
int i = 0;
|
||||
while (ligne[i] != '\0') {
|
||||
rapport[fin + i] = ligne[i];
|
||||
i++;
|
||||
}
|
||||
rapport[fin + i] = '\0';
|
||||
while (*ligne != '\0')
|
||||
*fin_rapport++ = *ligne++;
|
||||
*fin_rapport = '\0';
|
||||
return fin_rapport;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
@@ -339,6 +329,7 @@ int main(void)
|
||||
char *rapport = malloc(1 << 20);
|
||||
char ligne[128];
|
||||
rapport[0] = '\0';
|
||||
char *fin_rapport = rapport;
|
||||
|
||||
/* recherches par id, dans l'ordre d'origine */
|
||||
static const Transaction *index_ids[NB_TRANSACTIONS];
|
||||
@@ -374,30 +365,30 @@ int main(void)
|
||||
|
||||
/* rapport */
|
||||
snprintf(ligne, sizeof(ligne), "clients distincts;%d\n", nb_clients);
|
||||
ajouter_ligne(rapport, ligne);
|
||||
fin_rapport = ajouter_ligne(fin_rapport, ligne);
|
||||
snprintf(ligne, sizeof(ligne), "somme des requetes;%ld\n", somme_requetes);
|
||||
ajouter_ligne(rapport, ligne);
|
||||
fin_rapport = ajouter_ligne(fin_rapport, ligne);
|
||||
snprintf(ligne, sizeof(ligne), "meilleure periode;%d;%d;%ld\n", debut, fin, meilleure);
|
||||
ajouter_ligne(rapport, ligne);
|
||||
fin_rapport = ajouter_ligne(fin_rapport, ligne);
|
||||
snprintf(ligne, sizeof(ligne), "paires opposees;%ld\n", nb_paires);
|
||||
ajouter_ligne(rapport, ligne);
|
||||
fin_rapport = ajouter_ligne(fin_rapport, ligne);
|
||||
snprintf(ligne, sizeof(ligne), "facons de rendre %d;%ld\n", MONTANT_MONNAIE, nb_facons);
|
||||
ajouter_ligne(rapport, ligne);
|
||||
fin_rapport = ajouter_ligne(fin_rapport, ligne);
|
||||
for (int c = 0; c < 12; c++) {
|
||||
snprintf(ligne, sizeof(ligne), "categorie;%d;%d\n", c, categories[c]);
|
||||
ajouter_ligne(rapport, ligne);
|
||||
fin_rapport = ajouter_ligne(fin_rapport, ligne);
|
||||
}
|
||||
for (int c = 0; c < NB_CLIENTS; c++) {
|
||||
snprintf(ligne, sizeof(ligne), "client;%d;%ld\n", c, totaux_clients[c]);
|
||||
ajouter_ligne(rapport, ligne);
|
||||
fin_rapport = ajouter_ligne(fin_rapport, ligne);
|
||||
}
|
||||
for (int j = 0; j < NB_JOURS; j++) {
|
||||
snprintf(ligne, sizeof(ligne), "jour;%d;%ld\n", j, totaux_jours[j]);
|
||||
ajouter_ligne(rapport, ligne);
|
||||
fin_rapport = ajouter_ligne(fin_rapport, ligne);
|
||||
}
|
||||
for (int i = 0; i < NB_TRANSACTIONS; i += 10) {
|
||||
snprintf(ligne, sizeof(ligne), "rang;%d;%d;%ld\n", i, t[i].id, t[i].montant);
|
||||
ajouter_ligne(rapport, ligne);
|
||||
fin_rapport = ajouter_ligne(fin_rapport, ligne);
|
||||
}
|
||||
|
||||
FILE *f = fopen("rapport.txt", "w");
|
||||
|
||||
Reference in New Issue
Block a user