Ieri alle territoriali, nel secondo problema non sono riuscito a prendere in input la stringa nonostante la sintassi fosse corretta, ho provato scanf, fscanf, cin e fgets, sia con un carattere alla volta che tutta la stringa ma non andava. Provando a farlo girare l’esecuzione si bloccava all’input della stringa, mostrando nella console il cursore lampeggiante e permettendo di scrivere, ma non c’era modo di andare oltre. Ho sperato fosse un problema della VM e l’ho mandato comunque, però l’ho fatto presente alla Carletto… Anche voi avete avuto questo problema? Come l’avete risolto?
1 Mi Piace
Anche io all’inizio ho avuto il tuo stesso problema, ma subito dopo mi sono accorto che il mio programma provava a leggere N caratteri, mentre N sono le caselle, quindi i caratteri da leggere erano N - 1
1 Mi Piace
Io per sicurezza nel loop che leggeva i caratteri ho anche saltato l’accapo iniziale:
for(int i = 1; i < N; i++)
{
char ch = getchar();
// Salta l'accapo
while((ch == '\n') || (ch == '\r'))
ch = getchar();
// ... altro codice ...
}
1 Mi Piace
MountainDrew si, quello me l’avevo notato infatti nelle versioni in cui prendevo il carattere singolo ho usato
char c, sequenza[MAXN]; for (int i=0; i<N-1; i++) { scanf ("%c", &c); sequenza[i] = c; }
ma anche in fgets
ho usato N-1…
Almeno non sono l’unico! Però mi scoccia non averlo sistemato
1 Mi Piace