Ultima modifica:
Un array non inizializzato, come ogni altra variabile non inizializzata, contiene valori non ben precisati.Ma così il mio array iniziale avrebbe dentro tutti zeri, giusto? Quindi come faccio a "fermare" la funzione di input quando c'è un doppione se il mio array è formato sempre dallo stesso numero? Non mi entrerebbe proprio nel ciclo "Inserisci dati finchè non trovi un doppione" di cui ho bisogno per iniziare l'esercizio
Devi creare un array molto grande e utilizzarlo come se fosse un array molto piccolo che si ingrandisce man mano. Una cosa del genere.Quindi come faccio a "fermare" la funzione di input quando c'è un doppione se il mio array è formato sempre dallo stesso numero?
C:
#include <stdio.h>
#include <stdbool.h>
#define MAXLEN 1024
// return true iff array[0 .. length-1] contains value.
bool contains(int value, int* array, size_t length) {
for (size_t i = 0; i < length; i++)
if (array[i] == value) return true;
return false;
}
int main() {
int array[MAXLEN];
size_t length = 0;
// leggo l'array
while (length < MAXLEN) {
int x;
printf("Inserisci numero: ");
scanf("%d", &x);
if (contains(x, array, length)) break;
array[length++] = x;
}
// stampo i suoi elementi
for (size_t i = 0; i < length; i++)
printf("array[%d] = %d\n", i, array[i]);
return 0;
}
Tu dicevi "dovrebbe continuare a farmi inserire numeri all'infinito finchè non ci sono due cifre uguali". Io ho semplificato l'esercizio dicendo: "dovrebbe continuare a farmi inserire numeri finché non ci sono due cifre uguali o finché non ne ho inseriti MAXLEN".