Überprüfung des Vorzeichens in einer eingegebenen Zahlenfolge



  • Hallo Leute.
    Ich bräuchte mal kurz wieder eure Hilfe.
    Ich muss ein Programm schreiben, das überprüft, wie oft in einigen eingegebenen Zahlen (durch eine For-Scheife) das vorzeichen gewechselt wurde.
    Bis jetzt habe ich folgendes stehen:

    `

    #include <iostream>

    #include <conio.h>

    using namespace std;

    int main()

    {

        int i, n, zahl;
    
        cout << "Wie groß soll die Zahlenfolge sein?: ";
    
        cin >> n;
    
        cout << "Bitte Zahlenfolge angeben: ";
    
        for (i = 1; i <= n; i++)
    
        {
    
                cin >> zahl;
    
        }
    

    `

    wie muss ich jetzt weitermachen?
    PS: das programm ist mit dem Qt Creator geschrieben. (C++)



  • Du willst zählen, wie oft das Vorzeichen gewechselt wurde. Dafür brauchst du eine Variable, die mitzählt. Fehlt noch die Bedingung, unter der die Zählvariable inkrementiert wird. Das soll genau dann geschehen, wenn die aktuelle Zahl ein anderes Vorzeichen als die vorherige Zahl hat. Also brauchst du zwei Variablen für die aktuelle und die vorherige Zahl. Wie überprüft man, ob zwei Zahlen das gleiche Vorzeichen haben?



  • Probiers mal mit
    if (std::abs(var) == var)
    bei var natürlich deine variable einsetzen.
    Das überprüft dann ob der absolute Betrag gleich ist wie die Variable.
    Brauchst ein #include <cmath>


  • Mod

    rvalue schrieb:

    Brauchst ein #include <cmath>

    cstdlib. In cmath ist abs für Fließkommazahlen, was man hier sicherlich nicht möchte.

    Auch immer einen Blick wert:
    http://graphics.stanford.edu/~seander/bithacks.html#DetectOppositeSigns


Anmelden zum Antworten