Calcolo lunghezza sequenza di interi da tastiera

di il
5 risposte

Calcolo lunghezza sequenza di interi da tastiera

Salve,
sono alle prime armi con il linguaggio c.
Dovrei scrivere un semplice algoritmo
secondo cui preso un numero arbitrario di interi da tastiera conti tali interi.

Nel caso in cui viene chiesto che la sequenza termini con uno "0", non ho problemi.
Ma nel caso in cui non ho altre condizioni non riesco a risolverlo
ho provato cosi ma va in loop
int main()
{
int c, i, dato;
printf("Inserisci interi:\n");
c=scanf("%d", &dato);
i=0;
while(c!=EOF)
{
c=scanf("%d", &dato);
i++;
}

printf("%d",i);
system("pause");
return 0;
}

Potreste darmi una mano?
Grazie

5 Risposte

  • Re: Calcolo lunghezza sequenza di interi da tastiera

    Devo inserire da tastiera un numero arbitrario di interi
    e farmi stampare quanti ne ho inseriti.
  • Re: Calcolo lunghezza sequenza di interi da tastiera

    Cosi il controllo ce l'ho fino a che non inserisco zero,
    fin qui ero arrivata, mi interessava sapere se ai potessero contare
    senza tale controllo.
  • Re: Calcolo lunghezza sequenza di interi da tastiera

    Ex : inserisco 1 2 3 4 batto invio
    E a video devo avere 4 (numero di interi inseriti)
    Ho provato cosi
    int i=0;
    Int c=getchar ( );
    while (c!= EOF)
    { if (c!=' ')
    i++;
    printf ("% d",i);
    }

    Cosi se scrivo 4 5 6 7 8
    A video ho 1 2 3 4 5
    Ma non riesco ad uscire dal while.... ci vorrebbe un' altracondizione
    quale " fino a quando non batto invio" ma non so come ai traduce
  • Re: Calcolo lunghezza sequenza di interi da tastiera

    L'EOF generalmente corrisponde a ctrl+z su windows e ctrl+d sui sistemi *nix ...
    Comunque se vuoi farlo in modo che esca dal while quando premi invio devi circa fare così:
    
    #include <stdio.h>
    #include <ctype.h>
    
    
    int main ()
    {
    int c,i;
    i=0;
    while ( (c=getchar()) !='\n')   //Finché non viene premuto invio continuo a leggere...
        {
        if(isdigit(c))      // Se il carattere letto è un numero incremento il contatore i
            i++;
        }
    printf("%d\n",i);
    return 0;
    }
  • Re: Calcolo lunghezza sequenza di interi da tastiera

    Grazie
Devi accedere o registrarti per scrivere nel forum
5 risposte