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

    [C] calcolare punteggio

    codice:
    #include "stdafx.h"
    #include "stdio.h"
    
    
    int main ()
    	{
    		int p1 = 0;
    		int p2 = 0;
    		int p3 = 0;
    		int PL1 = 0;
    		int PL2 = 0;
    		int PL3 = 0;
    		int k = 3000;
    		
    		printf("QUESTO PROGRAMMA SERVE PER CALCOLARE IL PUNTEGGIO DEL BURRAGO\n\n");
    
    		do
    		{
    			printf("\nInserire il punteggio di Player 1      ");
    			scanf("%d",&p1);
    			getchar();
    			printf("\nInserire il punteggio di Player 2      ");
    			scanf("%d",&p2);
    			getchar();
    			printf("\nInserire il punteggio di Player 3      ");
    			scanf("%d",&p3);
    			getchar();
    			printf("\n-------------------------------------------------------------------------------\n");		
    			PL1=p1+PL1; 
    			PL2=p2+PL2; 
    			PL3=p3+PL3; 
    			printf(" \nIL PUNTEGGIO ATTUALE e'\n\n Player 1  %d       Player 2  %d       Player 3  %d\n",PL1,PL2,PL3);
    			printf("\n-------------------------------------------------------------------------------\n");		
    		}
    
    		while (k>=PL1||k>=PL2||k>=PL3);
    		
    
    		printf("\n\n                             COMPLIMENTI IL GIOCO E FINITO  \n\n\n");
    		printf(" I punteggi sono Player 1  %d       Player 2  %d       Player 3  %d\n\n",PL1,PL2,PL3);
    		return 1;
    }


    allora ho un inghippo sul do while, in pratica anche se uno di tre valori PL1-2-3 arriva a 3000 o lo supera non sce dal ciclo ma continua, e non riesco a capire il xche....

    P.S.(in efetti tutti i valori sono multipli di 5 quindi volevo sapere anche come implementare un controllo che in caso il valore inserito non fosse un multiplo di 5 mi evidenziasse lo sbaglio e mi permettesse di reinserre il valore coretto)

    grazie 1000 per l' aiuto
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  2. #2
    Non devi usare || ma &&
    codice:
    ...
    while ( k >= PL1 && k >= PL2 && k>=PL3 );
    ...
    Se uno dei PL* supera il valore di k il ciclo termina ...

    PS: Peri i multipli dai uno sguardo all'operatore %
    Experience is what you get when you don’t get what you want

  3. #3
    grazie per avermelo fatto notare



    per il % fino a li ci ero arrivato la mia domanda era

    se uso il costritto IF e gli faccio fare un confronto col modulo ad esempio

    codice:
    if (c==0)      //* [C]  Valore assegnato al risultato %*//
      {
        PL1=p1+PL1
       }
    ELSE
    {
       PRINTF("Il numero non e corretto inserire il punteggio")
       scanf("%d",p1);  
    PL1=p1+PL1
    }
    allora la cosa dovrebbe funzionare (ipoteticamente) infatti se il modulo nn e 0 rinserisco la scanf e eseguo l' addizione.

    Ma se il tizio e cosi stupido da inserire il valore sbagliato........
    In efetti cosi andrebbe bene solo se il valore viene inserito in modo nn corretto 1 sola volta , ma alla seconda questo viene inserito comunque , come posso risolvere...?
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  4. #4
    non ho capito bene cosa intendi, prova a modificare questo codice secondo le tue esigenze


    Codice PHP:

    #include <stdio.h>


    int main ()
        {
            
    int PL1 0;
            
    int PL2 0;
            
    int PL3 0;
            
    int k 3000;
            
            
    printf("QUESTO PROGRAMMA SERVE PER CALCOLARE IL PUNTEGGIO DEL BURRAGO\n\n");

            do
            {

                
    int p1 0;
                
    int p2 0;
                
    int p3 0;

                while  (
    p1 == 0)      //* [C]  Valore assegnato al risultato %*//
                
    {
                    
    printf("\nInserire il punteggio di Player 1      ");
                    
    scanf("%d",&p1);
                }

                while  (
    p2 == 0)      //* [C]  Valore assegnato al risultato %*//
                
    {
                    
    printf("\nInserire il punteggio di Player 2      ");
                    
    scanf("%d",&p2);
                }

                while  (
    p3 == 0)      //* [C]  Valore assegnato al risultato %*//
                
    {
                    
    printf("\nInserire il punteggio di Player 3      ");
                    
    scanf("%d",&p3);
                }

                
    printf("\n-------------------------------------------------------------------------------\n");        
                
    PL1=p1+PL1
                
    PL2=p2+PL2
                
    PL3=p3+PL3
                
    printf(" \nIL PUNTEGGIO ATTUALE e'\n\n Player 1  %d       Player 2  %d       Player 3  %d\n",PL1,PL2,PL3);
                
    printf("\n-------------------------------------------------------------------------------\n");        
            }

            while (
    k>=PL1 && k>=PL2 && k>=PL3);
            

            
    printf("\n\n                             COMPLIMENTI IL GIOCO E FINITO  \n\n\n");
            
    printf(" I punteggi sono Player 1  %d       Player 2  %d       Player 3  %d\n\n",PL1,PL2,PL3);

            return(
    0);


    normalmente l'uscita dal main nella condizione di nessun errore è 0 (return nella main richiama exit che chiude quello che c'è da chiudere).
    ciao
    sergio

  5. #5
    codice:
    while  (p1 == 0)      //* [C]  Valore assegnato al risultato %*// 
                { 
                    printf("\nInserire il punteggio di Player 1      "); 
                    scanf("%d",&p1); 
                } 
    
                while  (p2 == 0)      //* [C]  Valore assegnato al risultato %*// 
                { 
                    printf("\nInserire il punteggio di Player 2      "); 
                    scanf("%d",&p2); 
                } 
    
                while  (p3 == 0)      //* [C]  Valore assegnato al risultato %*// 
                { 
                    printf("\nInserire il punteggio di Player 3      "); 
                    scanf("%d",&p3); 
                }

    in questo modo non funziona, il motivo e che per fare il modulo mi serve il valore delle "scanf" e quindi stando dentro un while che come predicato vuole il risultato della scanf, questo nn puo avvenire.
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  6. #6
    scusame, ma non capisco, il modulo di cosa?
    comunque fai così

    Codice PHP:

    int modulo 
    0;
    while  (
    modulo == 0)    
                { 
                    
    printf("\nInserire il punteggio di Player 1      "); 
                    
    scanf("%d",&p1); 
    modulo = .... ; // inserisco il calcolo del modulo
                


  7. #7
    codice:
    #include <stdio.h> 
    
    
    int main () 
        { 
            int PL1 = 0; 
            int PL2 = 0; 
            int PL3 = 0; 
            int k = 3000; 
             
            printf("QUESTO PROGRAMMA SERVE PER CALCOLARE IL PUNTEGGIO DEL BURRAGO\n\n"); 
    
            do 
            { 
    
                int p1 = 0; 
                int p2 = 0; 
                int p3 = 0; 
    			int modulo = 0;
    			
    		while  (modulo == 0)     
                { 
                    printf("\nInserire il punteggio di Player 1      "); 
                    scanf("%d",&p1); 
    	   modulo = p1%5; // inserisco il calcolo del modulo
    			}
            
    		while  (modulo == 0)     
                { 
                    printf("\nInserire il punteggio di Player 2      "); 
                    scanf("%d",&p2); 
    	   modulo = p2%5; // inserisco il calcolo del modulo
    		    } 
    
            
    		while  (modulo == 0)     
                { 
                    printf("\nInserire il punteggio di Player 3      "); 
                    scanf("%d",&p3); 
    	   modulo = p3%5; // inserisco il calcolo del modulo
    		    } 
    
            
    		
    			printf("\n-------------------------------------------------------------------------------\n");         
                PL1=p1+PL1; 
                PL2=p2+PL2; 
                PL3=p3+PL3; 
                printf(" \nIL PUNTEGGIO ATTUALE e'\n\n Player 1  %d       Player 2  %d       Player 3  %d\n",PL1,PL2,PL3); 
                printf("\n-------------------------------------------------------------------------------\n");         
            } 
    
            while (k>=PL1 && k>=PL2 && k>=PL3); 
             
    
            printf("\n\n                             COMPLIMENTI IL GIOCO E FINITO  \n\n\n"); 
            printf(" I punteggi sono Player 1  %d       Player 2  %d       Player 3  %d\n\n",PL1,PL2,PL3); 
    
            return(0); 
    
    }
    nisba non funziona
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  8. #8
    uscito dal while devi azzerare nuovamente modulo

    modulo=0;

  9. #9
    scusa, ma forse non mi hai capito cosa voglio dire per modulo

    intendo modulo come il resto di una divisione per un numero, nel mio caso per 5

    quindi se il mio numero inserito da (p*) scanf da come resto 1 allora devo reinserire il dato senza che venga calcolata la sommatoria PL* altrimenti se il resto e 0 il programma acquisisce il dato e fa la sommatoria

    se nn erro il modulo in [c] si fa con (p*)%5 dove 5 e il divisore.
    come hai detto tu i while vengono ripetuti solo se il valore della scanf e 0 mentre i valori da me inseriti posso essere negativi o positivi bast che siano multipli di 5 quindi -120,-135,0,5,380 vanno tutti bene 123,122,194 non sono ammessi

    da come mi hai detto tu questo dovrebbe essere il programma ma nn funziona per via del while

    codice:
    #include "stdafx.h"
    #include "stdio.h" 
    #include "math.h"
    
    int main () 
        { 
            int PL1 = 0; 
            int PL2 = 0; 
            int PL3 = 0; 
            int k = 3000; 
             
            printf("QUESTO PROGRAMMA SERVE PER CALCOLARE IL PUNTEGGIO DEL BURRAGO\n\n"); 
    
            do 
            { 
    
                int p1 = 0; 
                int p2 = 0; 
                int p3 = 0; 
    			int modulo = 0;
    			
    		while  (modulo == 0)     
                { 
                    printf("\nInserire il punteggio di Player 1      "); 
                    scanf("%d",&p1); 
    		modulo = p1%5; // inserisco il calcolo del modulo
    	     }
    		modulo=0;
    		while  (modulo == 0)     
                { 
                    printf("\nInserire il punteggio di Player 2      "); 
                    scanf("%d",&p2); 
    		modulo = p2%5; // inserisco il calcolo del modulo
    	     } 
    		modulo=0;
            
    		while  (modulo == 0)     
                { 
                    printf("\nInserire il punteggio di Player 3      "); 
                    scanf("%d",&p3); 
    	        modulo = p3%5; // inserisco il calcolo del modulo
    	    }
    		modulo=0;
    
            
    		
    			printf("\n-------------------------------------------------------------------------------\n");         
                PL1=p1+PL1; 
                PL2=p2+PL2; 
                PL3=p3+PL3; 
                printf(" \nIL PUNTEGGIO ATTUALE e'\n\n Player 1  %d       Player 2  %d       Player 3  %d\n",PL1,PL2,PL3); 
                printf("\n-------------------------------------------------------------------------------\n");         
            } 
    
            while (k>=PL1 && k>=PL2 && k>=PL3); 
             
    
            printf("\n\n                             COMPLIMENTI IL GIOCO E FINITO  \n\n\n"); 
            printf(" I punteggi sono Player 1  %d       Player 2  %d       Player 3  %d\n\n",PL1,PL2,PL3); 
    
            return(0); 
    
    }
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  10. #10
    Originariamente inviato da Alessio86

    intendo modulo come il resto di una divisione per un numero, nel mio caso per 5

    quindi se il mio numero inserito da (p*) scanf da come resto 1 allora devo reinserire il dato senza che venga calcolata la sommatoria PL* altrimenti se il resto e 0 il programma acquisisce il dato e fa la sommatoria

    se nn erro il modulo in [c] si fa con (p*)%5 dove 5 e il divisore.
    se ho capito cosa intendi è il contrario

    Codice PHP:

    #include "stdio.h" 

    int main () 
        { 
            
    int PL1 0
            
    int PL2 0
            
    int PL3 0
            
    int k 3000
             
            
    printf("QUESTO PROGRAMMA SERVE PER CALCOLARE IL PUNTEGGIO DEL BURRAGO\n\n"); 

            do 
            { 

                
    int p1 0
                
    int p2 0
                
    int p3 0
        
    int modulo 1;
                
            while  (
    modulo != 0)     
                { 
                    
    printf("\nInserire il punteggio di Player 1      "); 
                    
    scanf("%d",&p1); 
            
    modulo p1%5// inserisco il calcolo del modulo
             
    }
            
    modulo=1;
            while  (
    modulo != 0)     
                { 
                    
    printf("\nInserire il punteggio di Player 2      "); 
                    
    scanf("%d",&p2); 
            
    modulo p2%5// inserisco il calcolo del modulo
             

            
    modulo=1;
            
            while  (
    modulo != 0)     
                { 
                    
    printf("\nInserire il punteggio di Player 3      "); 
                    
    scanf("%d",&p3); 
                
    modulo p3%5// inserisco il calcolo del modulo
            
    }
            
    modulo=1;

            
            
                
    printf("\n-------------------------------------------------------------------------------\n");         
                
    PL1=p1+PL1
                
    PL2=p2+PL2
                
    PL3=p3+PL3
                
    printf(" \nIL PUNTEGGIO ATTUALE e'\n\n Player 1  %d       Player 2  %d       Player 3  %d\n",PL1,PL2,PL3); 
                
    printf("\n-------------------------------------------------------------------------------\n");         
            } 

            while (
    k>=PL1 && k>=PL2 && k>=PL3); 
             

            
    printf("\n\n                             COMPLIMENTI IL GIOCO E FINITO  \n\n\n"); 
            
    printf(" I punteggi sono Player 1  %d       Player 2  %d       Player 3  %d\n\n",PL1,PL2,PL3); 

            return(
    0); 


    ciao
    sergio

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 © 2025 vBulletin Solutions, Inc. All rights reserved.