Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C++ [Sprawdzanie liczb i wykonywanie na nich działań]

Ostatnio zmodyfikowano 2019-11-28 22:52
Autor Wiadomość
matrix72001
Temat założony przez niniejszego użytkownika
C++ [Sprawdzanie liczb i wykonywanie na nich działań]
» 2019-11-28 20:56:35
Witam.

Jestem początkujący jeżeli chodzi o programowanie. Dostałem ostatnio w szkole pewne zadanie z podręcznika, w którym należy napisać program w C++, pobiera 3 wartości zmiennych i wykonuje podane działania, gdy zostaną spełnione warunki. Warunki są 3:
1) Mnoży liczbę pierwszą oraz drugą, gdy pierwsza liczba > od trzeciej liczby i liczba druga > liczby pierwszej;
2) Dzieli liczby: drugą przez trzecią, gdy liczba druga < trzeciej albo druga < pierwszej;
3) Dodaje wszystkie 3 liczby, gdy liczba trzecia > od pierwszej i liczba 2 nie jest równa 5 lub liczba druga > od trzeciej oraz liczba pierwsza nie jest równa 0.

Ja wykonałem właśnie takowy skrypt:
C/C++
#include <iostream>
//Program, który spełnia podane warunki:
//1. MNOŻY LICZBĘ A- liczba1 I B- liczba2, GDY LICZBA A>C I B>A.
//2. DZIELI LICZBĘ B PRZEZ C-liczba3, GDY LICZBA B<C LUB B<A.
//3. DODAJE LICZBY A,B,C, GDY C>A, B!=5 LUB B>C I A!=0.
using namespace std;

float liczba1 = 0;
float liczba2 = 0;
float liczba3 = 0;
float wynik = 0;

int main()
{
    cout << "Podaj liczbe \"a\"" << endl;
    cin >> liczba1;
    cout << "Podaj liczbe \"b\"" << endl;
    cin >> liczba2;
    cout << "Podaj liczbe \"c\"" << endl;
    cin >> liczba3;
   
    if( liczba1 > liczba3 && liczba2 > liczba1 )
    {
        wynik = liczba1 * liczba2;
        cout << "Wynik to : " << wynik << endl;
    }
    if( liczba2 < liczba3 || liczba2 < liczba1 )
    {
        wynik = liczba2 / liczba3;
        cout << "Wynik to : " << wynik << endl;
    }
    if( liczba3 > liczba1 && liczba2 != 5 || liczba2 > liczba3 && liczba1 != 0 )
    {
        wynik = liczba1 + liczba2 + liczba3;
        cout << "Wynik to : " << wynik << endl;
    }
    return 0;
}

Lecz mam pewne probemy, mianowicie:

1) nie mam pojęcia czy algorytm został prawidłowo zapisany, a problem rozwiązany
2) podczas uruchomienia programu i spełnieniu warunków, program zamiast wyświetać 1 wynik wyświetla 2, z czego pierwszy to ten spełniony, ale pod spodem jest też drugi, i nie zawsze w tej samej kolejności. Zdarza mi się też wyświetlić tylko jedną linijkę kodu, ale nie wiem jamkim sposobem.

Np: warunek 1:

Podaj liczbe "a"
7
Podaj liczbe "b"
8
Podaj liczbe "c"
5
Wynik to : 56
Wynik to : 20 <==== nie wiem skąd się to wzięło

a gdy wprowadzę liczby:
(warunek 3):

Podaj liczbe "a"
4
Podaj liczbe "b"
3
Podaj liczbe "c"
1
Wynik to : 3 <===== ten wynik nie jest potrzebny
Wynik to : 8

Mam nadzieję, że pomożecie mi rozwiązać ten problem.


P-175691
nanoant20
» 2019-11-28 22:52:59
Wynik to : 56
Wynik to : 20 <==== nie wiem skąd się to wzięło
ponieważ ten warunek jest spełniony
if( liczba3 > liczba1 && liczba2 != 5    || liczba2 > liczba3 && liczba1 != 0 )

Wynik to : 3 <===== ten wynik nie jest potrzebny
Wynik to : 8
ten warunek jest spełniony
if( liczba2 < liczba3    || liczba2 < liczba1 )

2) podczas uruchomienia programu i spełnieniu warunków, program zamiast wyświetlać 1 wynik wyświetla 2

C/C++
if( liczba1 > liczba3 && liczba2 > liczba1 )
{
    wynik = liczba1 * liczba2;
    cout << "Wynik to : " << wynik << endl;
}
else if( liczba3 > liczba1 && liczba2 != 5 || liczba2 > liczba3 && liczba1 != 0 )
{
    wynik = liczba1 + liczba2 + liczba3;
    cout << "Wynik to : " << wynik << endl;
} else {
    wynik = liczba2 / liczba3;
    cout << "Wynik to : " << wynik << endl;
}
P-175692
« 1 »
  Strona 1 z 1