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

Zadanie dotyczące pętli

VPS Starter Arubacloud
0 głosów
197 wizyt
pytanie zadane 15 czerwca 2016 w C i C++ przez niezalogowany
Treść zadania:
"Przygotuj program śledzący wpływy na konto Towarzystwa na Rzecz Zachowania Dobrych Wpływów. Użytkownik ma być pytany o liczbę wpłacających, a następnie ma prosić o podanie wpłaty każdego donatora. Informacje należy umieścić w dynamicznie alokowanej tablicy struktur. Każda struktura ma mieć dwa pola: obiekt klasy string na nazwisko oraz pole typu double na kwotę. Po odczytaniu wszystkich danych program ma pokazać nazwiska i wpłaty wszystkich, którzy dali przynajmniej 10000 złotych. Lista ma mieć nagłówek Nasi Wspaniali Sponsorzy. Dalej program ma pokazać listę pozostałych ofiarodawców, tym razem z nagłówkiem Nasi Sponsorzy. Jeśli którejś z kategorii zabraknie nazwisk, program ma wyświetlić słowo brak. Sponsorzy mają być podzieleni na dwie opisane grupy, ale w ramach tych grup nie należy już nijak ich sortować.

#include <iostream>
#include <string>

using namespace std;

int a;
const int sajz = 10000;

struct nws
{
	string nazwisko;
	double kwota;
};


int main()
{
	cout << "Liczba wplacajacych: ";
	(cin >> a).get();
	
	nws *lista = new nws[a];

	for (int i = 0; i < a; i++)
	{
		cout << "Nazwisko: ";
		getline(cin, lista[i].nazwisko);
		cout << "Kwota: ";
		(cin >> lista[i].kwota).get();
	}

	for (int j = 0; j < a; j++)
	{
		if (lista[j].kwota >= sajz)
		{
			cout << "Nasi Wspaniali Sponsorzy" << endl;
			cout << lista[j].nazwisko << " " << lista[j].kwota << endl;
		}
		else {
			cout << "Nasi Sponsorzy" << endl;
			cout << lista[j].nazwisko << " " << lista[j].kwota << endl;
		}
		
	}

	delete[] lista;

    return 0;
}

Proszę sprawdzić działanie programu. Chcę pozbyć się powtarzania "Nasi Wspaniali Sponsorzy" lub "Nasi Sponsorzy" po każdym nazwisku i kwocie.

2 odpowiedzi

0 głosów
odpowiedź 15 czerwca 2016 przez niezalogowany

Usuń jednego fora i zrób po jednym dla każdego if. Gotowego rozwiązania nie dam, ale to ma być mniej/więcej tak.

if (){
cout << "nasi wspaniali ...";
   for (){
   wyswietlanie imion i kasy
   }
}
else{
cout << "Nasi Sponsorzy";
for (){
   wyswietlanie imion i kasy
   }
}

 

 

komentarz 15 czerwca 2016 przez niezalogowany
No tak, tylko żeby program wiedział o co chodzi w if'ie muszę dać jakiś indeks do struktury.
komentarz 15 czerwca 2016 przez niezalogowany

To może coś takiego? 

for (int j = 0; j < a; j++){
        if (lista[j].kwota >= sajz)
        {
            cout << "Nasi Wspaniali Sponsorzy" << endl;
            for (int j = 0; j < a; j++){
			cout << lista[j].nazwisko << " " << lista[j].kwota << endl;
			}
			break;
        }
        else {
            cout << "Nasi Sponsorzy" << endl;
            for (int j = 0; j < a; j++){
            cout << lista[j].nazwisko << " " << lista[j].kwota << endl;
            }
            break;
        }
         
	}

Jak nie jesteś zadowolony z takiego rozwiązania, to daj znać, to usunę komentarz i może ktoś coś podeśle lepszego. 

0 głosów
odpowiedź 15 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)

Robisz dwie pętle... jedna wypisuje >=sajz druga <sajz

cout << "Nasi Wspaniali Sponsorzy" << endl;
for (int j = 0; j < a; j++)
	if (lista[j].kwota >= sajz) cout << lista[j].nazwisko << " " << lista[j].kwota << endl;
	
cout << "Nasi Sponsorzy" << endl;
for (int j = 0; j < a; j++)
	if (lista[j].kwota < sajz) cout << lista[j].nazwisko << " " << lista[j].kwota << endl;

 

komentarz 15 czerwca 2016 przez niezalogowany
Haha, dobrze dziękuję bardzo :D

Podobne pytania

0 głosów
3 odpowiedzi 294 wizyt
0 głosów
1 odpowiedź 743 wizyt
0 głosów
3 odpowiedzi 833 wizyt

92,452 zapytań

141,262 odpowiedzi

319,080 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...