Cześć! Program po wpisaniu do niego liczby 0 lub jakiejkolwiek liczby ujemnej wysypuje się. Jaki jest tego powód ? Muszę napisać funkcję, która będzie wyświetlała jedynie liczby dodatnie z liczb wpisanych wcześniej. Chodzi o funkcję i_l_d.
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
//--------------------------------------
void wpisz_liczby(int b[],int *k)
{
int i;
double S;
system("cls");
cout<<"Podaj ilosc liczb: "; cin>>*k;
cout<<"\nWpisz kolejne liczby";
for(i=0;i<*k;i++)
{
cout<<"\na["<<i<<"]="; cin>>b[i];
}
S=b[i]/(*k);
return;
}
//--------------------------------------
void wyswietl_liczby(int b[],int k)
{
int i;
system("cls");
cout<<"Oto liczby zapisane w tablicy\n\n";
for(i=0;i<k;i++)
{
cout<<b[i]<<" ";
}
return;
}
//--------------------------------------
void srednia(int b[],int k)
{
int i; float suma, S; S=0;
system("cls");
cout<<"Srednia liczb wynosi : ";
for(i=0;i<k;i++)
{
suma+=b[i];
}
S=suma/k;
cout<<S<<endl;
return;
}
//--------------------------------------
void i_l_d(int b[],int *k)
{
int i;
system("cls");
cout<<"Liczby dodatnie to : \n\n";
for(i=0;i<*k;i++)
{
if(i<0)
{
b[i] -= i;
}
cout<<b[i]<<" ";
}
return;
}
//--------------------------------------
int main()
{
char w;
int a[5000];
int n;
do
{
system("cls");
cout<<"Wybierz co chcesz zrobic: ";
cout<<"\n1. Wpisanie liczb do tablicy - 1";
cout<<"\n2. Wyswietlenie liczb z tablicy - 2";
cout<<"\n3. Obliczenie sredniej - 3";
cout<<"\n4. Wyswietl liczby dodatnie - 4";
cout<<"\n5. Koniec - 5\n";
cin>>w;
switch(w)
{
case '1': wpisz_liczby(a,&n); break;
case '2': wyswietl_liczby(a,n); break;
case '3': srednia(a,n); break;
case '4': i_l_d(a,&n); break;
}
system("pause");
} while (w!='5');
return 0;
}