Witam. :)
Mam taki drobny problem robię zadanie ze Spoj'a o następującej teści:
Wejście
Na wejściu znajduje się ciąg liczb całkowitych, z przedziału [-100;100], zakończony zerem. Zero służy do określenia końca ciągu, w związku z czym wystąpi na wejściu dokładnie raz. Każdy element ciągu podany jest w osobnej linii.
Wyjście
Na wyjściu należy w osobnych liniach wypisać dwie liczby całkowite wartość najmniejszej liczby w danym ciągu oraz jej ostatnie położenie.
Mam program znajduje dana liczbę lecz nie pokazuje liczby poprzedzającej. Pokazuje inne liczby.
Kod:
#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int tab[20], najmniejsza=tab[ 0 ], poprzednia=tab[0];
int main(int argc, char** argv) {
srand( time( NULL ) );
cout<<"\nWylosowane liczby: "<<endl;
for(int i=0; i<=20; i++)
{
tab[i]=(rand()%200)-100;
cout<<tab[i]<<endl;
}
cout <<"0";
for (int i=1; i<=20;i++){
if(tab[i] < najmniejsza){
najmniejsza=tab[i];
}
if(tab[i] < poprzednia){
poprzednia=tab[i-1];
}
}
cout <<endl<<"Najmniejsza liczba = "<<najmniejsza;
cout <<endl<<"Liczba poprzedzajaca= "<<poprzednia;
return 0;
}
Zrobiłem poprzebnia=tab[i-1] zeby pobierało wynik z wcześniejszego elementu tablicy przed najmniejsza liczba.