PDA

Visualizza la versione completa : [c++] istruzioni di salto


mica81
09-02-2004, 18:31
salve a tutti!
ho scritto, per esercizio, il seguente programma:

#include<iostream.h>
int main()
{
int i, j;
int* b;
cout<<"Inserisci due numeri:\n";
cin>> i >> j;
if (i==j) {
cout<<"I due numeri sono uguali!\n";
system("pause");
return 0;}
else if (i > j)
b = &i;
else
b = &j;
cout<<"Il maggiore tra "<< i <<" e "<< j <<" e': "<< *b <<'\n';
(*b)++; //incrementa di 1 il maggiore tra i due
cout<< b <<'\n';
system("pause");
return 0;
}

come vedete, se i due numeri sono uguali il programma si chiude.
io vorrei fare in modo che se inserisco due numeri uguali stampa il messaggio a video e torna all'output "inserisci due numeri".
ho provato con goto ma mi da errore. come posso fare? grazie.
:ciauz:

Angioletto
09-02-2004, 19:00
#include<iostream.h>
#include <stdlib.h>

int main()
{
int i, j;
int* b;

do {
cout<<"Inserisci due numeri:\n";
cin>> i >> j;
if (i==j) {
cout<<"I due numeri sono uguali!\n";
system("PAUSE");
}
else {
if(i > j)
b = &i;
if(i < j)
b = &j;
cout<<"Il maggiore tra "<< i <<" e "<< j <<" e': "<< *b <<'\n';
(*b)++; //incrementa di 1 il maggiore tra i due
cout<< b <<'\n';
}
} while( i==j );

system("PAUSE");
return 0;
}

Basta includere tutto in un do-while..
Poi fa attenzione..devi togliere il return dal primo if, e fare in modo che si stampi

cout<<"il maggiore etc etc

solo quando i due numeri non sono uguali..

iguana13
09-02-2004, 19:00
1) Inserisci tutto tra [ CODE] e [/ CODE](i mod dovrebbero aver aggiornato il regolamento...)

2) NON usare goto.

Ecco il codice:


#include <iostream>

using namespace std;

int main()
{
int i, j;
int* b;

do {
cout <<"Inserisci due numeri:\n";
cin >> i >> j;
if (i==j)
{
cout<<"I due numeri sono uguali!\n";
return 0;
}
else {
if (i > j)
b = &i;
else
b = &j;

cout << "Il maggiore tra " << i << " e " << j << " e': " << *b <<'\n';
(*b)++; //incrementa di 1 il maggiore tra i due
cout << b << endl;
}
} while(i==j);


system("PAUSE");
return 0;
}


Se fai il return 0, il programma termina subito!


Mi hai anticipato! ☺☻☺☻☺☻

Angioletto
09-02-2004, 19:05
c' anche un altro errore..
bisogna stare attenti: se i numeri sono uguali nulla vieta al programma di saltare alle seguenti istruzioni:

cout<<"Il maggiore tra "<< i <<" e "<< j <<" e': "<< *b <<'\n';
(*b)++; //incrementa di 1 il maggiore tra i due
cout << b << endl;

che non devono essere eseguite se i numeri sono uguali!!!

Ma con CODE si rispetta l'identazione del prog??

Angioletto
09-02-2004, 19:06
Mi hai anticipato! ☺☻☺☻☺☻

Questione di fortuna!!!
Ma di pochissimo!!!

mica81
09-02-2004, 19:10
ah ecco! adesso ho capito. graciassssssssssss :D

iguana13
09-02-2004, 19:10
Originariamente inviato da Angioletto

Ma con CODE si rispetta l'identazione del prog??

S

Loading