If/else zwraca zły wynik

0
#include<iostream>
using namespace std;
int main()
{
	cout<<"Podaj wiek odbiorcy listu:\n";
	int wiek;
	cin>>wiek;
		if(wiek<=0) cout << "Error";
		if(wiek>=100) cout << "Error";
		else
		cout << "Siema";
	return 0;
}

Gdy wiek równy jest 0 (lub mniejszy - no nie może być, ale takie zadanie;)) wyświetla się Error ale z Siema. W przypadku >=100 działa poprawnie i wyświetlany jest Error.

0
	if(wiek<=0) cout << "Error";
		else
		if(wiek>=100) cout << "Error";
		else
		cout << "Jest Pieknie. Zyje!";
3

Bo sprawdzasz najpierw warunek w 1 ifie. Jeśli mniejsze to wypisujesz 'Error' i tyle. Potem masz drugiego ifa (nie jest to else if!) sprawdzasz czy > 100 a że nie jest to wchodzisz do else czyli wypisujesz 'Siema'.

4
#include <iostream>
using namespace std;

int main()
  {
   cout<<"Podaj wiek odbiorcy listu: ";
   unsigned wiek;
   cin>>wiek;
   if(wiek>=100) cout<<"Error"<<endl;
   else cout<<"Siema"<<endl;
   return 0;
  }
1

niech dopisze klamry do tych if-ów i wszystko będzie jasne

1

Pomijając sposób z unsigned ja bym to napisał tak:

#include<iostream>
using namespace std;
int main()
{
    cout<<"Podaj wiek odbiorcy listu:\n";
    int wiek;
    cin>>wiek;

    if(wiek > 0 && wiek < 100) 
        cout << "Siema";
    else
        cout << "Error";

    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1