• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie (tablice, struktura) c++

Cloud VPS
0 głosów
2,275 wizyt
pytanie zadane 8 listopada 2015 w C i C++ przez Cinas Nowicjusz (160 p.)

Witam, mam problem z napisaniem poniższego programu:

1) Struct punkt{ x, y (int); waga (float);};

2)wczytać n

3)wczytać n elementową tablicę punktów(N<1000) 3,5)Napisać funkcję zwracajaca punkt o maksymalnej wadze

4)Napisz funkcje zwracającą liczbę punktów z wagami ujemnymi  

5)Napisać funkcje zwracającą informacje ( bool) czy istnieją punkty o tych samych współrzędnych

6)Napisać funkcję, która wypisze wagi

 

Nie mogę się zabrać za punkt 3,5 i 6. Bardzo bym prosił o pomoc.

1 odpowiedź

+1 głos
odpowiedź 8 listopada 2015 przez Porcupine Nałogowiec (31,560 p.)

Deklarujesz tablicę punktów i ją wczytujesz:
 

struct punkt{
	int x;
	int y;
	float waga;
};

punkt A[1001];

int n;
cin >> n;

for (int i = 0; i < n; i++){
	cin >> A[i].x >> A[i].y >> A[i].waga;
}

 

 

Punkt 3: przechodzisz po całej tablicy, masz jakąś zmienną pomocniczą typu punkt, gdzie trzymasz elemtent, który do tej pory miał największą wagę

Punkt 5: domyślam się, ze nie trzeba jakoś super szybkiego algorytmu więc możesz w dwóch zagnieżdżonych pętlach for sprawdzić dla wszystkich par czy: (A[i].x == A[j].x && A[i].y == A[j].y)

Punkt 6: przechodzisz w pętli for i wypisujesz: cout << A[i].waga << ' ';

Jakbyś miał jeszcze jakieś pytania daj znać, ale myślę, że sobie poradzisz :)
Pozdrawiam,

 

komentarz 8 listopada 2015 przez Cinas Nowicjusz (160 p.)
Dziękuję Ci bardzo, zabieram się do pracy.
komentarz 9 listopada 2015 przez Cinas Nowicjusz (160 p.)

Witam ponownie udało mi sie w miare ogarnąć to co powyżej.

Mam jednak jeszcze problem z podpunktem 4:

4)Napisz funkcje zwracającą liczbę punktów z wagami ujemnymi  

Czy mógłby ktoś mi pomoć z zaimplementowaniem bufora liczb (wag) ujemnych?

komentarz 9 listopada 2015 przez furas Maniak (53,800 p.)
a do czego ci bufor ? Tworzysz zmienną np. licznik, przeglądasz tablicę z punktami za pomoca `for` i sprawdzasz, który punkt ma wagę ujemną - jeśli ma ujemną to zwiększasz licznik o jeden. Na koniec zwracasz tylko zawartość licznika.
komentarz 5 stycznia 2017 przez szusini Nowicjusz (100 p.)

Wiem, ze temat stary, ale chciałbym go odswieżyć, sam zaczynam prace z C++ i szukam sobie zadan do cwiczen, zobaczylem to i zaczalem robic.

Jest wszystko oprocz tej funkcji bool, tego nie kumam, moglby ktos wstawic snippet jak to powinno wygladac?

To moj kod:

#include <iostream>
using namespace std;

void najwieksza ();
void ujemne ();

struct punkt {
	int x;
	int y;
	float waga;
};

punkt A[1001];
int n;
int main() {

	cout<<"Podaj ilosc liczb: "<<endl;
	cin >> n;

	for (int i = 0; i < n; i++) {
		cout<<"Podaj x:"<<endl;
		cin >> A[i].x;
		cout<<"Podaj y:"<<endl;
		cin >> A[i].y;
		cout<<"Podaj wage:"<<endl;
		cin >> A[i].waga;
	}

	najwieksza();
	ujemne();

	for(int i=0; i<n; i++) {
		cout << A[i].waga <<' ';
	}

	return 0;
}
void najwieksza () {

	float max;
	int tmp=0;
	max = A[0].waga;
	for(int i=0; i<n; i++) {
		if(A[i].waga>max) {
			max= A[i].waga;
			tmp=i;
		}

	}
	cout<<"Liczba o najwiekszej wadze sposrod wylosowanych to:"<<tmp+1<<endl;
}
void ujemne() {
	int licznik=0;
	for(int i=0; i<n ; i++) {

		if(A[i].waga <0 ) {

			licznik++;
		}
	}
	cout<<"Punktow z wagami ujemnymi jest: "<<licznik<<endl;
}

 

Podobne pytania

0 głosów
1 odpowiedź 541 wizyt
pytanie zadane 11 października 2016 w C i C++ przez Jedyn Obywatel (1,200 p.)
0 głosów
2 odpowiedzi 646 wizyt
pytanie zadane 29 marca 2019 w C i C++ przez Skidrowed Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 245 wizyt
pytanie zadane 12 czerwca 2016 w C i C++ przez Jędrzej Dembowski Użytkownik (740 p.)

93,483 zapytań

142,417 odpowiedzi

322,763 komentarzy

62,895 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...