RISOLTO Determinare se un numero è strettamente positivo o negativo

Stato
Discussione chiusa ad ulteriori risposte.

gia07

Nuovo Utente
1
0
Ciao,
domani ho verifica di informatica, l'esercizio in preparazione dice così: Es. 8: Scrivere un programma che continuare a chiedere all'utente di fornire un numero intero e dice se è positivo strettamente oppure negativo strettamente (escluso lo zero). Quando viene inserito lo zero termina l'esecuzione.
Al momento ho fatto così ma sul fatto di far continuare a ripetere la domanda non sono capace di farlo. Grazie in anticipo.

C++:
#include <iostream>

using namespace std;

int main (){
    int n;
    int l=0;

    cout <<" fornire un numero intero"<<endl;
    cin >>n;
    
    while (n!=0){
        if ( n>0){
            cout <<"il numero e' positivo"    <<endl;
            cout <<" fornire un numero intero"<<endl;
            cin >>n;
        }

        else {
            cout << "il numero e' negativo"<<endl;
            cout <<" fornire un numero intero"<<endl;
            cin >>n;
        }
    }
    cout <<"termino l'esecuzione"<<endl;

    return 0;
}
 
Ultima modifica da un moderatore:

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Ciao e benvenuto!
Questa volta ho modificato io il tuo messaggio formattando il codice e modificando il titolo, ma per favore, prendi nota del Regolamento ed informazioni utili sulla sezione Programmazione.


Comunque venendo al tuo problema, non ho capito. Tu stai ripetendo la domanda e l'inserimento, è corretto.
Non è forse il modo migliore in quanto vai a ripetere parti di codice che potresti tenere fuori dall'if/else inoltre. Forse ti converrebbe utilizzare un do/while.
Inoltre la variabile "l" non ti serve.
 

Tidus88

From another world
Utente Èlite
2,045
1,738
CPU
Ryzen 5600X
Dissipatore
Deepcool GAMMAX 400
Scheda Madre
Asus Prime B450-Plus
HDD
MX-500 500GB
RAM
Ballistix 16GB DDR4 3000Mhz
GPU
RTX 3060Ti Dual ASUS
Audio
Edifier R1280db
Monitor
Hisense H55U7A
PSU
Sharkoon Silentstorm Icewind 550W
Case
Corsair 275R Airflow White
Net
SkyWifi FTTH
OS
Windows 10
Hai un errore concettuale.

Ti indirizzo e tu prova a rielaborare il tuo codice.


Usa una condizione di while diversa, inizializzata a true, scollegata dal numero letto.
Es. while(isNotZero)

All'interno del while fai il cin >>n (altrimenti non potrai mai ripetere la richiesta di inserimento numero!!)

Dopo aver letto n verifichi. Nel caso sia 0 imposti la tua condizione isNotZero a false.
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
All'interno del while fai il cin >>n (altrimenti non potrai mai ripetere la richiesta di inserimento numero!!)
Questo lo sta già facendo negli if/else. Non è errato quello che fa, però lo ripete due volte inutilmente.
Trattandosi di un if/else, l'inserimento del numero lo chiederà sempre (se avesse utilizzato un if/else-if allora no).
 

Tidus88

From another world
Utente Èlite
2,045
1,738
CPU
Ryzen 5600X
Dissipatore
Deepcool GAMMAX 400
Scheda Madre
Asus Prime B450-Plus
HDD
MX-500 500GB
RAM
Ballistix 16GB DDR4 3000Mhz
GPU
RTX 3060Ti Dual ASUS
Audio
Edifier R1280db
Monitor
Hisense H55U7A
PSU
Sharkoon Silentstorm Icewind 550W
Case
Corsair 275R Airflow White
Net
SkyWifi FTTH
OS
Windows 10
Questo lo sta già facendo negli if/else. Non è errato quello che fa, però lo ripete due volte inutilmente.
Trattandosi di un if/else, l'inserimento del numero lo chiederà sempre (se avesse utilizzato un if/else-if allora no).

Vero, ho riletto dopo
 
  • Mi piace
Reazioni: DispatchCode

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
@gia07 ci fai un feedback in merito, così da capire se hai risolto o no? Grazie
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Chiudo vista la mancanza di feedback da parte dell'utente.
 
Stato
Discussione chiusa ad ulteriori risposte.

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili