Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C++] Errore su un if

  1. #1

    [C++] Errore su un if

    Salve, mi è stato dato un problema da risolvere (per scuola).

    Praticamente devo fare un programma che: introdotto un numero X e una serie di numeri interi che termina quando si digita un numero maggiore di X, visualizzi quanti numeri positivi sono stati inseriti e il minore fra tutti i numeri della sequenza.

    questo è quello che ho fatto io:

    codice:
    #include <iostream>
    using namespace std;
    int main () {
        int x, pos=0, min, k, I;
        cout<<"inserisci un numero"<<endl;
        cin>>x;
                    cout<<"inserisci un numero"<<endl;
                    cin>>k; 
                    while(x>k) 
                    for (I=0;I<x;I++){
                    if (x>0)
                    pos++;
                    cout<<"i numeri positivi sono:"<<pos<<endl; }
                    return 0; 
                    }
    il problema penso sia: if (x>0) infatti mi conta infiniti numeri positivi... come posso fare?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Come da Regolamento interno (al punto 6) il codice va postato indentato all'interno dei tag CODE.

    Questa l'ho sistemata io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502

    Re: [C++] Errore su un if

    Originariamente inviato da Ale.Kalu
    Salve, mi è stato dato un problema da risolvere (per scuola).

    Praticamente devo fare un programma che: introdotto un numero X e una serie di numeri interi che termina quando si digita un numero maggiore di X, visualizzi quanti numeri positivi sono stati inseriti e il minore fra tutti i numeri della sequenza.

    questo è quello che ho fatto io:

    codice:
    #include <iostream>
    using namespace std;
    int main () {
        int x, pos=0, min, k, I;
        cout<<"inserisci un numero"<<endl;
        cin>>x;
                    cout<<"inserisci un numero"<<endl;
                    cin>>k; 
                    while(x>k) 
                    for (I=0;I<x;I++){
                    if (x>0)
                    pos++;
                    cout<<"i numeri positivi sono:"<<pos<<endl; }
                    return 0; 
                    }
    il problema penso sia: if (x>0) infatti mi conta infiniti numeri positivi... come posso fare?
    A me sembra che il programma non faccia quello che vuoi che faccia.
    Richiedi solo un numero e non la sequenza di cui parli. All'interno del tuo while dovresti di nuovo chiedere il numero k.
    Perché fai un ciclo su I da 0 a x?

    Prova a fare un diagramma di flusso di quello che vuoi ottenere e vedi che in C il programma sarà già praticamente scritto, almeno come logica di funzionamento.

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Quel codice no uscirà mai perchè x lo inserisci solo una volta.. saràsempre maggione di 0 (se inserisci un num > 0)

    è un po' completamente sbagliato direi

  5. #5
    Utente di HTML.it L'avatar di Mad_al
    Registrato dal
    Jun 2009
    Messaggi
    125
    il problema sta nel while... perchè, una volta inseriti i 2 numeri x e k, non vengono mai cambiati, e se x > k, allora il blocco del while va sempre in esecuzione di continuo.. e quindi il for presente nel blocco non si arresta mai... forse meglio fare un if, al posto del while...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.