Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65

    [C]problemi con IF

    sto facendo un programmino che assegna un grado dell'esercito in base a un certo punteggio che viene calcolato appositamente.Ci sono vari intervalli a cui corrispondono i vari gradi. Ho usato molti If e già nn so se è una cosa buona, fatto sta che facendo partire il programma all'assegnazione del grado me li scrive tutti...

    sto sclerando, potete darmi una mano per favore? grazie!

    codice:
    #include <stdio.h>
    #include <conio.h>
    
    
    void main()
    {
            int punteggioalleanza=0;
    		int punteggiogiocatore=1;      
    		float decimale;
            char risp=0;
    		
    		printf("Inserisci Punteggio Alleanza ->");
    		
    		
    		fflush(stdin);
    
    		scanf("%d",&punteggioalleanza);
    		
    		
    		while(punteggiogiocatore!='0')
    		{
    		
    		
    		printf("Inserisci Punteggio Giocatore (0 per uscire) ->");
    		
    		fflush(stdin);
    
    		scanf("%d",&punteggiogiocatore);
    		
    		
    		decimale = (float)punteggiogiocatore*100/punteggioalleanza;
    
    
    		if(decimale<0.4)
    		{
    			printf("Il grado e': SOLDATO\n");
    			//break;
    		}
    		
    
    		if(decimale>=0.4||decimale<0.6)
    		{
    			printf("Il grado e': SOLDATO SCELTO\n");
    			//break;
    		}
    		
    		
    		if(decimale>=0.6||decimale<0.7)
    		{
    			printf("Il grado e': CAPORALE\n");
    			//break;
    		}
    		
    		
    		if(decimale>=0.7||decimale<0.8)
    		{
    			printf("Il grado e': CAPORALE SCELTO\n");
    			fflush(stdin);//break;
    		}
    		
    		if(decimale>=0.8||decimale<0.9)
    		{
    			printf("Il grado e': PRIMO CAPORALMAGGIORE\n");
    			fflush(stdin);//break;
    		}
    		
    		if(decimale>=0.9||decimale<1)
    		{
    			printf("Il grado e': CAPORALMAGGIORE SCELTO\n");
    			fflush(stdin);//break;
    		}
    		
    		if(decimale>=1||decimale<1.1)
    		{
    			printf("Il grado e': CAPORALMAGGIORE CAPO\n");
    			fflush(stdin);//break;
    		}
    		
    		if(decimale>=1.1||decimale<1.2)
    		{
    			printf("Il grado e': CAPORALMAGGIORE CAPO SCELTO\n");
    			fflush(stdin);//break;
    		}
    
    		
    		if(decimale>=1.2||decimale<1.3)
    		{
    			printf("Il grado e': ALLIEVO SERGENTE\n");
    			fflush(stdin);//break;
    		}
    		
    		if(decimale>=1.3||decimale<1.4)
    		{
    			printf("Il grado e': SERGENTE\n");
    			fflush(stdin);//break;
    		}
    		
    		if(decimale>=1.4||decimale<1.5)
    		{
    			printf("Il grado e': SERGENTE MAGGIORE\n");
    			fflush(stdin);//break;
    		}
    		
    		if(decimale>=1.5||decimale<1.7)
    		{
    			printf("Il grado e': MARESCIALLO\n");
    			fflush(stdin);//break;
    		}
    		
    		if(decimale>=1.7||decimale<1.9)
    		{
    			printf("Il grado e': MARESCIALLO ORDINARIO\n");
    			fflush(stdin);//break;
    		}
    		
    		if(decimale>=1.9||decimale<2.1)
    		{
    			printf("Il giocatore e' molto attivo sul Forum?(s/n): ");
    			
    			fflush(stdin);
    			scanf("%c",&risp);
    			if(risp=='s')
    				printf("Il grado e': PRIMO MARESCIALLO LUOGOTENENTE\n");
    			else if(risp!='s')
    				printf("Il grado e': PRIMO MARESCIALLO\n");//break;
    		};
    		};
    
    
    }

  2. #2
    Utente di HTML.it L'avatar di DydBoy
    Registrato dal
    Jul 2005
    Messaggi
    165
    Ci credo che te li scrive tutti....ci va l'AND logico non l'OR.

    Se il decimale ad esempio e' 0.5 entra in tutti gli IF perche' si dimostra vera la condizione con il minore di X.

    VERA decimale <0.6
    VERA decimale <0.7
    ecc..

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65
    hai ragione, che idiota, quindi dovrei metterci un && non ||

  4. #4
    Utente di HTML.it L'avatar di DydBoy
    Registrato dal
    Jul 2005
    Messaggi
    165
    Originariamente inviato da Ponza
    Quindi dovrei metterci un && non ||
    Esattamente.

    Ciao!

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.