Czy dobrze wprowadzam elementy do tablicy?

0
 cout << "Podaj rozmiar tablicy:" << endl;
	int r = 0;
	cin >> r;
	cin.get();

	cout << endl;

	int* tab = new int[r];

	int element = 0;

	for (int i = 0; i < r; ++i)
	{
		cin >> element;
		cin.get();
	}

Czy tak to powinno wyglądać? Dodam, że muszę jeszcze dodać do siebie wszystkie elementy tablicy i wyznaczyć ich średnią, więc od razu zapytam czy dobrze to zrozumiałem.
Robię zmienną suma, dodaję wszystkie elementy tablicy i przypisuję do tej zmiennej a następnie dzielę sumę przez rozmiar tablicy?

1
  1. nie dodajesz niczego do tablicy
  2. nie potrzebujesz tablicy, skoro masz policzyć średnią to możesz od razu sumować
0
sig napisał(a):
  1. nie dodajesz niczego do tablicy
  2. nie potrzebujesz tablicy, skoro masz policzyć średnią to możesz od razu sumować

Jest mi potrzebna tablica bo opisałem tylko część zadania. Jak w takim razie poprawnie wprowadzić elementy do tablicy? Co mam poprawić?

1

cin >> tab[i];
Tablice

0
carlosmay napisał(a):

cin >> tab[i];
Tablice

Dzięki wielkie, miłej nocy!

0
// Tablica jednowymiarowa elementów typu double. Rozmiar tablicy i jej elementy są pobierane od użytkownika. Wyznacz średnią wartość elementów tablicy, a następnie sprawdź ile w tablicy
// jest elementów, które są mniejsze od wyznaczonej średniej o więcej niż 2. 

#include <iostream>

using namespace std;

int main()
{

	cout << "Podaj rozmiar tablicy:" << endl;
	int r = 0;
	cin >> r;
	cin.get();

	cout << endl;

	int* tab = new int[r];

	for (int i = 0; i < r; ++i)
	{
		cout << "Element [" << i << "] = ";
		cin >> tab[i];
		cin.get();
	}

	int suma = 0;

	for (int i = 0; i < r; ++i)
	{
		suma += tab[i];
	}

	int średnia = 0;
	średnia = suma / r;

	cout << endl;

	for (int i = 0; i < r; ++i)
	{
		if (tab[i] > średnia) // TUTAJ
		{
			cout << tab[i] << endl;
		}
	}

	cin.get();
	return 0;

} 

Natrafiłem na dodatkowy problem, jak w ostatniej pętli zrobić tak, żeby pokazało elementy o 2 większe niż średnia? Tam gdzie napisałem "//TUTAJ" uważam, że powinno się to znaleźć ale nie wiem jak to odpowiednio zapisać.

0

if (tab[i] == średnia+2)

0
 if(tab[i] == (średnia + 2)) 
0

Twoja tablica nie przechowuje elementów typu double.

int średnia = 0;
średnia = suma / r;

a to już daleko odbiega od prawidłowych wyników.

0

Zapomniałem poprawić. Testowałem na int to wszystko. Pozmieniałem na double ale algorytm w ostatniej pętli mi się nie zgadza. To co koledzy wyżej napisali.

0

Zwróć też uwagę, że masz zwrócić ilość elementów spełniających dane kryterium, a nie same elementy.

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