Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    87

    [C] quanti pari? e quanti dispari?

    Ciao a tutti,si immagino che sia l'ennesimo programma che chiede di calcolare se e quanti numeri pari o dispari ci sono.Per essere precisi l'utente deve poter mettere tutti gli interi che vuole,quando ha finito inserisce zero e il programma determina quanti pari e quanti dispari ci siano.Questo è quanto ho scritto:
    codice:
    #include<stdlib.h>
    #include<stdio.h>
    
    int main()
    {
        int a,p,d;
        p=0;
        d=0;
        while(a!=0)
        {
                   printf("inserisci valore,quando hai finito digita 0\n");
                   scanf("%d",&a);
                   if(a%2==0)
                   {
                             p++;
                   }
                   else
                   {
                             d++;
                   }
        }
        printf("ci sono esattamente %d numeri pari e %d numeri dispari\n",p,d);
        system("pause");
        return 0;
    }
    il problema è che mi conta anche lo zero nella condizione.Quindi mi fa 0/2 resto 0 e me lo considera pari ogni volta :| non riesco a tirarlo fuori

  2. #2
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Potresti mettere , all'interno del while dopo la scanf

    codice:
    if(a==0)break;
    in questo modo esce dal ciclo while e non considera lo zero .


    Oppure aggiungere un and nella condizione del'if e un else if

    codice:
    if(a%2==0 && a  != 0)
              else if (a%2>0)
    in questo modo non considera lo zero



    Direi la prima !
    Tecnologia

  3. #3
    Ad occhio credo che si possa cambiare qualcosa in questo modo:

    codice:
    #include<stdlib.h>
    #include<stdio.h>
    
    int main()
    {
    int a,p,d;
    char carat;
    p=0;
    d=0;
    printf("Inserisci dei numeri interi ( premere invio per terminare) \n:");
    do
        {
        scanf("%d",&a);
            if(a%2==0)
                p++;
    
            else
                d++;
        }while( (carat=getchar())!='\n'); /* finché non viene premuto il carattere new line */
    printf("ci sono esattamente %d numeri pari e %d numeri dispari\n",p,d);
    return 0;
    }
    Utilizzo il do-while per entrare nel ciclo la prima volta senza verificare che il carattere sia \n

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    87
    Grazie mille!! scusate se rispondo solo ora ma internet implode con un minimo di pioggia dalle mie parti.Grazie 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.