Jak zrobić, żeby program wyświetlał tylko spełniony warunek?

0

Mam zrobić program obliczający wartość premii do sprzedanych aut, niby program napisałem ale nadal jest coś nie tak bo ma zwracać tylko 1 wartość a mi wyświetla wszystko. Pomoże ktoś?

#include <iostream>
using namespace std;
int main () {

unsigned int k;
int p;
cin>>k;
if(k>0 || k<10)
{
	p=0;
	cout<<"Wysokosc premii: "<<p<<endl;
}
else (k>10||k<20);{

p=500;
cout<<"Wysokosc premii: "<<p<<endl;
}
if (k>20||k<=30)
{
	p=750;
	cout<<"Wysokosc premii: "<<p<<endl;
}
else (k>30);
{
	p=1000;
	cout<<"Wysokosc premii: "<<p<<endl;
}
system("pause");
return 0;
}
2
else (k>10||k<20);{

Coś tutaj (i paru innych miejscach) jest zbędne.

0

Chodzi Ci o || czy zły zapis warunku jest?

0

Nie, warunek jest poprawny.

0

No nie wiem, przecież jak nie dam średników to program nie działa, jeśli nie dam {} to działa tak samo jak wcześniej. Jeśli daje && zamiast || to jest tak samo :D

1
if(k>0 || k<10)
  1. To wykona Ci się zawsze gdy k > 0 LUB k < 10 czyli dla każdej wartości k.
else (k>10||k<20);{
  1. Tego średnika być tu nie powinno i patrz 1)
if (k>20||k<=30)

Zobacz 1)

else (k>30);

Kolejny średnik.

0

No tak ale jak tylko te średniki usunę to program mi nie działa bo nie ma średników

1

Bo w else nie ma czegoś takiego jak warunek. Do tego używa się else if.
else ma być już ostatnią opcją, kiedy wszystkie if i else if nie wykonały się.

Przykład:

int number = 5;

if (number == 0)
{
	cout << "Number cannot be 0";
}
else if (number < 0)
{
	cout << "Number cannot be negative";
}
else if (number > 6)
{
	cout << "Number cannot be greater than 6";
}
else
{
	cout << "Number is valid";
}

Wynikiem tego programu będzie

Number is valid
0

Dzięki wielkie. Już działa wszystko. Czyli taki zapis jest poprawny?

#include <iostream>
using namespace std;
int main () {

unsigned int k;
int p;
cin>>k;
if(k>=0 && k<=10)
{
	p=0;
	cout<<"Wysokosc premii: "<<p<<endl;
}
else if (k>10&&k<=20){

p=500;
cout<<"Wysokosc premii: "<<p<<endl;
}
else if (k>20&&k<=30)
{
	p=750;
	cout<<"Wysokosc premii: "<<p<<endl;
}
else 
{
(k>30);

	
	p=1000;
	cout<<"Wysokosc premii: "<<p<<endl;
}
system("pause");
return 0;
}
0

Ostatni else if jest zły:

else 
{
(k>30);

Powinno być:

else if (k > 30)
{
	...
}

Naucz się formatowania kodu, zobacz jaki skrót klawiszowy odpowiada za automatyczne formatowanie kodu i trzymaj się tego stylu.

0

A nie łatwiej tak?

int p = 0;
if ( k > 30 ) { p = 1000; }
	else if ( k > 20 ) { p = 750; }
	else if ( k > 10 ) { p = 500; }
	else { p = 0; }

cout << "Wysokosc premii: " << p << "\n";
0

Wychodzi na to, że łatwiej :D. Dzięki.

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