Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Piccolo esercizio
Forum - C/C++ - Piccolo esercizio

Avatar
GiuZeppelin (Normal User)
Newbie


Messaggi: 7
Iscritto: 21/02/2011

Segnala al moderatore
Postato alle 20:53
Mercoledì, 09/11/2011
Salve ragazzi,
mi sono imbattuto in un esercizio che, essendo io neofita del C/C++, mi ha dato qualche problemuccio. in pratica: Il compito che questo problema propone è scrivere un programma che riceve un intero n > 1 e stabilisce quanti numeri primi p sono compresi nell'intervallo n < p < 2n.

ho provato questo codice ma il programma (che con Dev-C++ non da problemi nel codice) sembra bloccarsi misteriosamente dopo l'immissione del numero da parte dell'utente. di seguito il codice:
Codice sorgente - presumibilmente C

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.   int N,cont;
  7.   double Resto;
  8.       printf("Inserisci un numero N: ");
  9.       scanf("%d", &N);
  10.       do{
  11.                  
  12.       Resto = N % 2;
  13.       if(Resto != 0) (cont = cont + 1);
  14.       }
  15.       while(N <= (N * 2));
  16.       printf("I numeri primi compresi fra N e 2N sono: %d", cont);
  17.   system("PAUSE");     
  18.   return 0;
  19. }



Avevo provato lo stesso codice ma col ciclo "FOR" ma il risultato è lo stesso. Consigli?

PM
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 13:49
Giovedì, 10/11/2011
Ciao!

Per risolvere l' esercizio, devi impostare due cicli in questo modo.
Il primo ciclo scorre tutti i numeri da n a 2*n. Il secondo, è interno al primo, e stabilisce se il numero in esame è primo oppure no.

PM
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Up
-1
Down
V
Segnala al moderatore
Postato alle 22:58
Mercoledì, 09/11/2011
inizializza cont a zero "prima" di chiedere il numero in ingresso.
Altrimenti, cont = cont + 1 darà un risultato inatteso perché cont non ha un valore iniziale stabilito.

ps: togli le parentesi da cont = cont +1, non ci capisce nulla e  non ci vogliono.

Ultima modifica effettuata da lorenzo il 09/11/2011 alle 22:59
PM