Zliczanie poprzednich par mniejszych od następnych

0

Użytkownik wprowadza 10 liczb całkowitych, a program zlicza (i wyświetla) ile jest takich sąsiednich par, że wartość poprzednika była mniejsza od następnika i jeżeli tak jest to dana para będzie wyświetlona.

Nie proszę o rozwiązanie, na razie potrzebuję tylko podpowiedzi jak to ugryźć - jakaś mała podpowiedź.

3

Musisz pamiętać poprzednio wprowadzoną liczbę. Po wprowadzeniu nowej porównujesz, jeśli zależność jest spełniona to wypisujesz, przypisujesz nową jako starą i tak w kółko.

0

#include <iostream>
using namespace std;

int main ()
{
int a,b,c,d,e,f,g,h,i,j,n;
n=0;
cout << " Podaj 10 liczb calkowitych: " << endl;
cin >> a >> b >> c >> d >> e >> f >> g >> h >> i >> j;
if(a<b)

	n++ && cout <<"Para: "<< a << ", "<< b << endl;
    
if(b<c)
	
	n++ && cout <<"Para: "<< b << ", "<< c << endl;
    
if(c<d)
	
	n++ && cout <<"Para: "<< c << ", "<< d << endl;
    
if(d<e)
	
	n++ && cout <<"Para: "<< d << ", "<< e << endl;
    
if(e<f)
	
	n++ && cout <<"Para: "<< e << ", "<< f << endl;
    
if(f<g)
	
	n++ && cout <<"Para: "<< f << ", "<< g << endl;
    
if(g<h)
	
	n++ && cout <<"Para: "<< g << ", "<< h << endl;
    
if(h<i)
	
	n++ && cout <<"Para: "<< h << ", "<< i << endl;
    
if(i<j)
	
	n++ && cout <<"Para: "<< i << ", "<< j << endl;
    
cout << "Ilość sąsiednich par, że wartość poprzednika jest mniejsza od następnika wynosi:" << n << endl;


system("pause");

}

Dzięki za nakierowanie - ja źle zrozumiałem treść zadania :)

0

Panie, ale to jest do zrobienia w pętli. Jak będziesz miał do wczytania 1000 liczb to dojdziesz do zmiennych 3-literowych? ;)

Poza tym, polecam używanie {} do grupowania wyrażeń, zamiast &&. W Twoim obecnym kodzie dla pierwszego przypadku "poprawnej" pary n++ zwróci 0, więc informacja nie zostanie wyświetlona.

0

Nie wiem jak skonstruować pętle, załóżmy: jeżeli a mniejsze od b to wypisz a,b i n++ (w celu zliczenia ile jest par), i teraz jak podstawić kolejne liczby do sprawdzenia, i drugie pytanie, jeżeli a>=b to wyjdzie z pętli i co wtedy ?

0

Ale użytkownik podaje od razu 10 liczb i mam je pod 10 zmiennymi. Ja to jakoś źle rozumiem - jeżeli sprawdzę czy a < b i to wypiszę to jak zastąpić a na b i później jak robić to z kolejnymi zmiennymi ?

0

Używając operatora przypisania ⟶ =

a = b;
0

Nie wiem jak zrobić tą pętlę

0

W takim razie wróć do Twojego kursu/książki, na pewno to zagadnienie jest adekwatnie opisane.

0
for(cin>>prev;cin>>value;prev=value) if(prev<value) cout<<"Para: "<<prev<<','<<value<<endl;
0

Ta pętla porównuje na bieżąco podawane liczby i nie ma ograniczenia ( użytkownik może podać tylko 10 liczb) - a program ma sprawdzić już 10 podanych wcześniej liczb a nie podawanych na bieżąco

1

Czy to jest wyraźnie w warunkach zadania wymienione? Bo to nie ma sensu.

0

To zapisz do tablicy.

0

Nie jest to wyraźnie napisane czy może podawać na bieżąco czy ma je podać na początku - więc myślę, że zależy to od indywidualnej interpretacji. W takim wypadku ta pętla może być tylko trzeba ją ograniczyć do 10 powtórzeń

0

No to zrób to, w czym problem?

0
 
#include <iostream>
using namespace std;

int main ()
{
	int value,prev,n,k;
	n=0;
	k=1;
	
	cout << " Podaj 10 liczb calkowitych: " << endl;
	
	  for(cin >> prev; cin>> value; prev=value) 
	  {
		if(prev<value) 
		{
			cout<<"Para: "<< prev <<','<< value <<endl;
			n++;
		}
		k++;
		
		if(k>=10)
			break;
	  }
	

	cout << "Ilość sąsiednich par, że wartość poprzednika jest mniejsza od następnika wynosi:" << n << endl;
	
	
	system("pause");
}

Dzięki za pomoc i nie stresujcie się - jestem początkujący więc mam prawo popełniać błędy, nie widzieć pewnych rozwiązań, czegoś nie wiedzieć itd. itd. - m.in po to jest to forum.

0
int cnt=10;
for(cin>>prev;(cnt--)&&(cin>>value);prev=value) if(prev<value) cout<<"Para: "<<prev<<','<<value<<endl;

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