Fluttuazioni finanziare

Stavo provando a risolvere il banale problema delle fluttuazioni finanziare della LUISS
Sulle prove in locale funziona mentre quando submitto al server mi dice che è sbagliato persino l’output dell’esempio. Forse ho scritto male il processo di output

#include <stdio.h>
#include <assert.h>

int main() {
    int N;
    scanf("%d\n", &N);
    int Flut[N];
    int i = 0;
    while (scanf("%d\n",&Flut[i++]) > 0){}
    int max=0,min=100;
    for(int i=0;i<N;i++){
      if (Flut[i] < min){
        min = Flut[i];
      } else if (Flut[i] > max){
        max = Flut[i];
      }

e come output

printf("%d\n", max-min);
return 0;

oppure

FILE * fp;
fp = fopen ("output.txt", "w+");
fprintf(fp,"%d\n", max-min);
fclose(fp);
return 0;

devi leggere i dati dal file “input.txt” mettendo, prima di usare la scanf, qualcosa tipo:
FILE * fpin;
fpin = fopen (“input.txt”, “r”,stdin);

ho provato ma mi non compila proprio dicendo che l’input non è stato dichiarato

azioni.c: In function 'main':
azioni.c:7:5: error: stray '\342' in program
     fpin = fopen (“input.txt”, “r”,stdin);
     ^
azioni.c:7:5: error: stray '\200' in program
azioni.c:7:5: error: stray '\234' in program
azioni.c:7:22: error: 'input' undeclared (first use in this function)
     fpin = fopen (“input.txt”, “r”,stdin);
                      ^
azioni.c:7:22: note: each undeclared identifier is reported only once for each function it appears in
azioni.c:7:5: error: stray '\342' in program
     fpin = fopen (“input.txt”, “r”,stdin);
     ^
azioni.c:7:5: error: stray '\200' in program
azioni.c:7:5: error: stray '\235' in program
azioni.c:7:5: error: stray '\342' in program
azioni.c:7:5: error: stray '\200' in program
azioni.c:7:5: error: stray '\234' in program
azioni.c:7:5: error: stray '\342' in program
azioni.c:7:5: error: stray '\200' in program
azioni.c:7:5: error: stray '\235' in program
azioni.c:7:39: error: 'r' undeclared (first use in this function)
     fpin = fopen (“

Scusami
prova con
FILE * fpin;
fpin = freopen (“input.txt”, “r”,stdin);

Purtroppo stesso errore :persevere:

Se vuoi leggere e scrivere usando la stdin e stdout nei problemi che ti specificano di leggere da file puoi usare le istruzioni

freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout); 

Come suggerito da @v.bizzarri
Inserendo queste due righe di codice il tuo algoritmo fa 50/100

#include <stdio.h>
#include <assert.h>

int main() {
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    int N;
    scanf("%d\n", &N);
    int Flut[N];
    int i = 0;
    while (scanf("%d\n",&Flut[i++]) > 0){}
    int max=0,min=100;
    for(int i=0;i<N;i++){
      if (Flut[i] < min){
        min = Flut[i];
      } else if (Flut[i] > max){
        max = Flut[i];
      }
    }
    printf("%d\n", max-min);
    return 0;
}

Per ottenere il 100 su 100 devi prestare attenzione a ciò che ti richiede il problema :

interessa conoscere la differenza massima in valore assoluto tra due quotazioni consecutive
del titolo.

I due valori della sequenza devono essere consecutivi e non tra il “pseudo” minimo e il massimo della squenza.
Ecco un caso di esempio che il tuo programma non risolve:

5
9
3
5
2
1

Output di questo caso è 6

Grazie mille per il codice di input e per la dritta!

1 Mi Piace

Questi errori che hai postato sono dovuti all’uso di caratteri speciali (non-ASCII) nel codice.

Per esempio hai usato la virgoletta storta invece di quella normale "

1 Mi Piace