Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Help Contatore 2 errori (credo)

    codice:
    //*Aggiunge 1 al contatore se il numero inserito da input e minore di soglia *//
    
    #include "stdafx.h"
    
    
    int main()
    
    {
    	int contatore = 0;
    	int numero = 0;
    	int i, n;
    	int soglia;
    	char c;
    	
    
    do
    {
    	printf ("Inserire il numero di quanti volori devi utilizare      ");
    		scanf("%d",&n);
    	printf("Inserire il valore di soglia        ");
    		scanf("%d",&soglia);		
    
    		for (i=0; i<n; i++)
    			{
    				printf(" Inserire il valore N    ");
    				scanf("%d",&numero);
    				printf("Il livello del contatore attuale e' di %d      \n\n",contatore);
    
    				if (numero < soglia)
    					{
    						contatore = contatore + 1;
    						
    					}
    						
    			}
    				printf(" Il vallore di Contatore e' %d      \n",contatore);
    				printf(" Vuoi continuare  Y/N          \n");
    					scanf("%c",&c);
    
    }
    				while (c=='y' ||c=='Y');
    				return 0;
    }



    allora il problema in efetti sono due

    1) Do While (che alla prima ripetizione funziona mentre, la secondavolta indifferentemente da Y/N termina)



    2) La printf che mi mostra il contatore attuale non funziona come dovrebbe , perche se il l' IF risulta falsa tutto OK, ma se l' IF risulta vera il contatora si aggiorna ma il valore della printf viene aggiornato nell (i+1).
    Mentre se sposto la printf dopo contatore=contatore+1, in caso di IF falso non mostra a video la Printf, ma solo se l' IF e falso meme posso fare




    grazie 1000

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    569
    Sposta la printf dopo l'if e inserisci la riga while(!getchar()) prima dell'ultima scanf.
    (di questo problema si è già parlato molte volte)

    codice:
    for (i=0; i<n; i++)
    {
             printf(" Inserire il valore N    ");
             scanf("%d",&numero);
             
            if (numero < soglia)    // qui le parentesi non servono
            	contatore = contatore + 1;
            
            printf("Il livello del contatore attuale e' di %d      \n\n",contatore);		
    			
            }
        
    printf(" Il valore di Contatore e' %d      \n",contatore);
    
    while (!getchar());
    printf(" Vuoi continuare  Y/N          \n");
    scanf("%c",&c);

  3. #3
    scusa ma il predicato del while dove lo metto rispetto al (!getchar());


    ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.