Oppure

Loading
19/11/07 14:48
trane_dirtyboy
ho un probema con sto c++, e soo 1 mese k lo studio ma vorrei capire xk questo programma k credo sia scritto giusto ocme forma, si pianta pgni volta k si immette un numero tipo 5.




#include <iostream>
using namespace std;


void main()
{
    int div=2;
int num;
    int r;
    
    
    cout<<"Che Numero Devo Controllare?"<<endl;
    cin>>num;

    r=num%div;

while (num>div)
{
        if (r==0)
        {
            cout<<"il numero non e' primo!"<<endl;
            div=num+10;
        }
        if(r==1)
        {
            div=div++;
        }
    }
if (num<div)
{
    cout<<"Fine!"<<endl;
}
if (num>div)
{
    cout<<"Il numero e' Primo!"<<endl;
}

system ("pause";);

se gentilmente puo aiutarmi qlk1 tenendo presente k sn moloto sega in c++.. grazie
}
aaa
19/11/07 14:54
trane_dirtyboy
Postato originariamente da trane_dirtyboy:

ho un probema con sto c++, e soo 1 mese k lo studio ma vorrei capire xk questo programma k credo sia scritto giusto ocme forma, si pianta pgni volta k si immette un numero tipo 5.




#include <iostream>
using namespace std;


void main()
{
    int div=2;
int num;
    int r;
    
    
    cout<<"Che Numero Devo Controllare?"<<endl;
    cin>>num;

    r=num%div;

while (num>div)
{
        if (r==0)
        {
            cout<<"il numero non e' primo!"<<endl;
            div=num+10;
        }
        if(r==1)
        {
            div=div++;
        }
    }
if (num<div)
{
    cout<<"Fine!"<<endl;
}
if (num>div)
{
    cout<<"Il numero e' Primo!"<<endl;
}

system ("pause";);
}
se gentilmente puo aiutarmi qlk1 tenendo presente k sn moloto sega in c++.. grazie


ho risolto mettendo un else al posto dell'ultimo if. ma qlk1 mi spiega il xk? teoricamente o ne esegue unoo esegue l'altro...
aaa
19/11/07 16:54
netarrow
guarda questa versione del programma (sbagliato ma con degli output):

#include <iostream>
using namespace std;


int main() {
  int div=2;
  int num;
  int r;


cout<<"Che Numero Devo Controllare?"<<endl;
cin>>num;

r=num%div;
while (num>div) {
cout << "div: " << div << endl;
  if (r==0) {
    cout<<"il numero non e' primo!"<<endl;
   num = div + 10;
  }

if(r==1) {
 div=div++;
}
}

cout << num << " " << div << endl;
if (num<div) {
  cout<<"Fine!"<<endl;
}

if (num>div) {
  cout<<"Il numero e' Primo!"<<endl;
}

return 0;
}


l'output è questo:
5
div: 2
div: 3
div: 4
5 5

quei due 5 alla fine sono num e div, e la situazione in cui sono uguali non è gestita dai tuoi if messi in quel modo, con l'else invece fai un'operazione quando l'if di prima risulta falso.
Quindi quei num < dim e num > div o esegue uno, o l'altro o nessuno dei due ed era il caso di 5.
aaa
19/11/07 17:04
netarrow
cmq mi pare non funzioni il tuo programma anche con l'else, prova così:

edit: nono sembra funzionare anche il tuo(anche se per 0 e 1 non dice se primo o non primo), però così credo sia più chiaro da leggere così:

#include <iostream>
using namespace std;

int main() {
  int div=2;
  int num;
  int r;
  bool primo = true;


  cout<<"Che Numero Devo Controllare?"<<endl;
  cin>>num;

  while (num > div) {
    r = num % div;
    if (r==0) {
     primo = false;
     break;
    } else div++;
  }

  if (primo) {
    cout<<"Il numero e' Primo!"<<endl;
  } else cout<<"il numero non e' primo!"<<endl;

 return 0;
} 
Ultima modifica effettuata da netarrow 19/11/07 17:15
aaa
20/11/07 12:49
trane_dirtyboy
grazie ma i break cosi nn so cs siano... e da poco k lo facio ho fatto solo i costrutti mentre e se... grazie cmq
aaa
20/11/07 12:50
trane_dirtyboy
Postato originariamente da netarrow:

guarda questa versione del programma (sbagliato ma con degli output):

#include <iostream>
using namespace std;


int main() {
  int div=2;
  int num;
  int r;


cout<<"Che Numero Devo Controllare?"<<endl;
cin>>num;

r=num%div;
while (num>div) {
cout << "div: " << div << endl;
  if (r==0) {
    cout<<"il numero non e' primo!"<<endl;
   num = div + 10;
  }

if(r==1) {
 div=div++;
}
}

cout << num << " " << div << endl;
if (num<div) {
  cout<<"Fine!"<<endl;
}

if (num>div) {
  cout<<"Il numero e' Primo!"<<endl;
}

return 0;
}


l'output è questo:
5
div: 2
div: 3
div: 4
5 5

quei due 5 alla fine sono num e div, e la situazione in cui sono uguali non è gestita dai tuoi if messi in quel modo, con l'else invece fai un'operazione quando l'if di prima risulta falso.
Quindi quei num < dim e num > div o esegue uno, o l'altro o nessuno dei due ed era il caso di 5.



grazie davvero. nn c avevo pensato..
aaa