Witam,
Napisałem kilka dni temu program, który po wprowadzeniu 10 liczb z przedziału od 0 do 100 sprawdza liczby, czy są parzyste czy też nie i na końcu zwraca liczby nieparzyste większe od 30 w odwrotnej kolejności dodatkowo oddzielając je znakiem "-". Tutaj właśnie pojawia się wspomniany w temacie błąd otóż
jak zwracany jest wynik program dodaje ciąg liczb nie wiadomo skąd wziętych i miesza je z liczbami pierwszymi przy zwracaniu wyniku, nie wiem czemu tak jest bo nie widzę gdzie to by mogło się wkraść do programu, dlatego proszę o pomoc, chce wiedzieć czemu tak się dzieje i jak temu zaradzić.
Mam jeszcze jedno pytanie dotyczące tego jak mogę po sprawdzeniu liczb pod kątem parzystych i nieparzystych, zaznaczyć liczby parzyste, ja w swoim programie wszystkie ustawiłem na wartość 999 i wypisywałem wszystkie oprócz tych z wartością 999 ale wydaje mi się ,że jest to dość nie efektowne rozwiązanie.
Pozdrawiam
#include <iostream>
#include <conio.h>
#include <cstdlib>
using namespace std;
int main()
{
// Zmienne
int dane[10]; // tablica z wprowadzonymi danymi
int wynik[10];
for(int a=0;a<10;a++) // Wprowadzanie danych
{
cout << "Podaj " << a+1 << " liczbe: ";
cin >> dane[a];
}
cout<<"---------------------------------------------------------------"<<endl;
for(int b=0;b<10;b++) // Sprawdzanie danych
{
if(dane[b]>0 && dane[b]<=100)
{
cout<<"Liczba "<<dane[b]<<" jest poprawna"<<endl;
}
else
{
cout<<"Liczba "<<dane[b]<<" jest niepoprawna"<<endl;
}
}
cout<<"---------------------------------------------------------------"<<endl;
for(int c=0;c<10;c++)
{
if(dane[c]%2==0)
{
cout<<"Liczba "<<dane[c]<<" jest parzysta"<<endl;
dane[c]=999;
}
else
{
cout<<"Liczba "<<dane[c]<<" jest nieparzysta"<<endl;
}
}
cout<<"---------------------------------------------------------------"<<endl;
for(int d=10;d>0;d--) // Zwrocenie wynikow
{
if(dane[d]!=999 && dane[d]>30)
{
cout<<dane[d]<<" - ";
}
}
cout<<"\n---------------------------------------------------------------"<<endl;
// Zakonczenie programu
system("PAUSE");
return 0;
}