[C] Acquisizione char da tastiera

di il
21 risposte

21 Risposte - Pagina 2

  • Re: [C] Acquisizione char da tastiera

    Che senso ha chiedere il primo valore e poi chiederlo nuovamente ricoprendo il primo numero inserito ... Hai riletto il codice almeno una volta? Che logica segui?
  • Re: [C] Acquisizione char da tastiera

    oregon ha scritto:


    Che senso ha chiedere il primo valore e poi chiederlo nuovamente ricoprendo il primo numero inserito ... Hai riletto il codice almeno una volta? Che logica segui?
    Mi sono accorto dell'errore.
    Ecco il nuovo codice:
    
    // DICHIARO LE LIBRERIE
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main()
    {
    // DICHIARO ED INIZIALIZZO LE VARIABILI
    int vet[100];
    int i=0;
    int n=0;
    char risposta;
    	// SI INSERISCE IL PRIMO NUMERO
    	printf("inserisci un numero\n");
    	scanf("%d",&vet[i]);
    	// SI CHIEDE ALL'UTENTE SE VUOLE INSERIRE ALTRI VALORI
    	printf("vuoi inserire altri valori ? (y/n)\n");
    	scanf(" %c",&risposta);
    	// CON if, SE LA RISPOSTA E' y SI PROSEGUE CON IL PROGRAMMA
    	if(risposta == 'y')
    	{	// SI CHIEDE QUANTI NUMERI SI VOGLIONO INSERIRE
    		printf("quanti numeri vuoi inserire ?  ");
    		scanf("%d", &n);
    			// CON IL CICLO FOR SI INSERISCONO NEL vet[i] I NUMERI VOLUTI
    			for(i=0; i<n; i++)
    			{
    				printf("inserisci un numero \n");
    				scanf("%d",&vet[i+1]);
    			}
    	}
    	else
    	{return 0;}	// ALTRIMENTI SI ESCE DAL PROGRAMMA	
    	
    	// VISUALIZZO IL VETTORE v[i], DOVE C'E' SIA IL PRIMO NUMERO, CHE I SUCCESSIVI
    	for(i=0; i<n+1; i++)
    	{
    		printf("\n visualizza il vettore:  %d", vet[i]);
    	}
    }
    
    L'ho provato e nella visualizzazione del vettore il primo numero inserito all'inizio non viene perso.
    Spero vada bene, anche se credo possa essere migliorato da qualcuno più esperto di me.
  • Re: [C] Acquisizione char da tastiera

    Ripeto ... La logica è sbagliata! Non devi chiedere il numero di valori ... Va tutto nel ciclo che va interrotto solo in base alla risposta...
  • Re: [C] Acquisizione char da tastiera

    oregon ha scritto:


    Ripeto ... La logica è sbagliata! Non devi chiedere il numero di valori ... Va tutto nel ciclo che va interrotto solo in base alla risposta...
    Da quello che sto capendo, nella programmazione (qualsiasi linguaggio) la parte più importante sta nel capire la logica, la sequenza esatta delle istruzioni.
    Io in questa discussione ho preso spunto da un frammento di codice, e ci ho capito: scrivi un numero, poi chiedi se aggiungerne altri.
    La variabile n, impostata come ho fatto io, serve per avere un riferimento, un limite massimo di altri valori da inserire.
    Se il mio codice non va bene, posso togliere le istruzioni relative alla variabile n, ma poi il suo valore va dichiarato a parte, tipo: int n = 5.
  • Re: [C] Acquisizione char da tastiera

    No, la logica è che l'utente non sa il numero preciso di numeri che deve inserire.
  • Re: [C] Acquisizione char da tastiera

    Tonmu ha scritto:


    No, la logica è che l'utente non sa il numero preciso di numeri che deve inserire.
    In quel caso il costrutto do ... while va bene.
  • Re: [C] Acquisizione char da tastiera

    @programmd ... Non si parte da codice per arrivare a risolvere un problema! Devi fare esattamente il contrario ... Esamina il problema, comprendi la logica da seguire e scrivi il codice corrispondente.

    Il problema è inserire un numero sconosciuto di valori in un vettore (comunque non più di quelli disponibili) e fermarsi solo in base ad una risposta ad una domanda. In base a questo il tuo codice non è corretto e bisogna proporne un altro.

    Ma poi la questione era stata risolta, tu perché hai postato in questo thread cambiando la discussione iniziale? È ovvio che il do while va bene, la for non c'entra...
Devi accedere o registrarti per scrivere nel forum
21 risposte