tablice w dev c++ zadanie, jaki mam błąd?

0

napisz program:
a) program wczytujący ciąg liczb całkowitych. Wypisz na ekranie kolejne wszystkie nieparzyste <ort>z pośród</ort> podanych liczb.
b) program wczytujący ciąg liczb rzeczywistych. Każdą podaną liczbę należy podnieść do kwadratu i wypisać na ekranie.

napisałem oba ale nie do końca działają
a)

#include <cstdlib>
#include <iostream>

using namespace std;

int t[10], a, x;

int main(int argc, char *argv[])
{
   cout<<"podaj koniec przedzialu: "<<x;
   cin>>x;
int suma=0;

for (int i=0;i<x;i++)
cin>>t[i];

cout<<"wczytane elementy to:"<<endl;


for (int i=0;i<x;i++)
cout<<t[i]<<"\t";

cout<<endl;

for (int i=0;i<x;i++)
{
if (t[i]%2!=0)

cout<<"nieparzyste to : "<<t[i]<<endl;

sort(t,t+x);
}

system("PAUSE");
return EXIT_SUCCESS;
}

problemy:

  • ort! wypisuje dobre nieparzyste np napisze w zbiorze 3 6 7 8 1 to wypisze nieparzyste 3 3 7 posortowane choc nie raz nie sortuje, a jak pisze liczby 1, 8 7 3 6 to wyjdzie bardzo dobrze i posortowanie nie wiem czemu nie zawsze wychodzi

macie jakieś rady?

b)

#include <cstdlib>
#include <iostream>

using namespace std;

float t[10], a, x;

int main(int argc, char *argv[])
{
   cin>>a;
if (a<0) 
int suma=0;

for (int i=0;i<5;i++)
cin>>t[i];

cout<<"wczytane elementy to:"<<endl;


for (int i=0;i<5;i++)
cout<<t[i]<<"\t";

cout<<endl;

for (int i=0;i<5;i++)
{
x=t[i]*t[i];
cout<<"potega to : "<<x<<endl;
}

system("PAUSE");
return EXIT_SUCCESS;
}

problemy:

  • nie podnosi do kwadratu pierwszej liczby z przedziału
  • ja usune int suma=0 wszystko sie psuje( to z poprzedniego zadania bo przekształcałem program i samo zostało tak
  • wypisuje to a (cin>>a) ale nie wiem po co jak tego nie uzywam poza tym jakos działa
  • nie wiem czy dobrze zapisałem liczby rzeczywiste, ale niby wychodzą wyniki z danych, które mają w sobie przecinek np 4,5 itd ( pisze oczywiscie 4.5 w programie)
0

Wywal devC++ i zainstaluj np. Code::Blocks.
a) sortuj przed pętlą wypisującą nieparzyste, a nie w jej trzewiach.
b) możesz wywalić to cin >> a i ten if - pewnie przez to Ci się wydaje, że nie potęguje pierwszej wpisanej liczby - bo siedzi w a. Zamiast float lepiej użyć double - mniejsze błędy w obliczeniach.

0

a)

#include <iostream>
using namespace std;


int main()
{
	int tab[10];

	cout << "Podaj liczby: ";
	for(int i = 0; i < 10; i++)
	{
		cin >> tab[i];
	}
	cout << "\nLiczby nieparzyste: ";
	for(int i = 0; i < 10; i++)
	{
		if(tab[i] % 2 != 0)
			cout << tab[i] << " ";
	}
        cin.sync();
	cin.get();
	return 0;
} 

Dla podanych liczb : 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Wypisze: 1,3,5,7,9

b)

#include <iostream>
using namespace std;


int main()
{

	float tab[10], wynik;

	cout << "Podaj liczby: ";
	for(int i = 0; i < 10; i++)
	{
		cin >> tab[i];
	}
	cout << "\nLiczby do kwadratu to: ";
	for(int i = 0; i < 10; i++)
	{
		wynik = tab[i]*tab[i];
		cout << wynik << " ";
	}

	cin.sync();
	cin.get();
	return 0;
} 

Sprawdzone na Microsoft Visual C++ 2010 EXPRESS

0

dev c++ muszę, okej 2 program poprawiłem
a jak mam nie sortować w jej trzewiach, nie rozumiem, czemu nie w niej?
edit:
okej już wiem usunąłem w pętli ale tez mi nie sortuje
#include <cstdlib>
#include <iostream>

using namespace std;

int t[10], a, x;

int main(int argc, char *argv[])
{
cout<<"podaj koniec przedzialu: "<<x;
cin>>x;
int suma=0;

for (int i=0;i<x;i++)
cin>>t[i];

cout<<"wczytane elementy to:"<<endl;

for (int i=0;i<x;i++)
cout<<t[i]<<"\t";

cout<<endl;

for (int i=0;i<x;i++)
if (t[i]%2!=0)

cout<<"nieparzyste to : "<<t[i]<<endl;

sort(t,t+x);

system("PAUSE");
return EXIT_SUCCESS;
}

ale już wypisuje dobrze;d

0

nie widzę potrzeby sortowania w tak banalnych programach. Po co sobie utrudniać ?

0

**Po co zakładasz jeszcze raz ten sam temat?! **Tutaj: http://4programmers.net/Forum/Newbie/174756-program_dev_c++_tablice?p=716802#id716802 chyba tam uzyskałeś poprawną odpowiedź na twój pierwszy problem?

0

Największym problemem autora jest logiczne myślenie... Jak ma wypisać posortowane, skoro najpierw wypisujesz, a potem sortujesz?

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