zadanie c++ Stephen Prata Szkoła programowania wydanie VI

0

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: tablicę znakową (lub 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 10 000 złotych. Lista ta 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 w 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 sortować.
Napisałem program(poniżej), ale z jakiegos powodu nie chce wyswietlic osob w poszczegolnych grupach. Kompilator także nie pokazuje błędu. Kilkanaście razy analizowałem zadanie ale nigdzie nie znalazłem pomyłki.

#include <iostream>
#include <string>
#include <windows.h>


using namespace std;


struct pole
{
    string nazwisko;
    double kwota = 0;
};

int main()
{
    int i = 0;

    cout << endl;
    cout << " Podaj liczbe wplacajacych: ";
    int ilosc;
    cin >> ilosc;
    system("cls");

    pole* pd = new pole[ilosc];

    while (i < ilosc)
    {
        cout << endl;
        cout << " Podaj nazwisko: ";
        cin >> pd[i].nazwisko;
        cout << " Podaj kwote: ";
        cin >> pd[i].kwota;
        i++;
        system("cls");        
    }  
    

    system("cls");
    
    string* wspanialysponsor = new string[ilosc];
    string* sponsor = new string[ilosc];
    
    int sprawdz = 0;
    int sprawdz1 = 0;

    int j = 0, k = 0;
    i = 0;
    
    while (i < ilosc)
    {
        if (pd[i].kwota >= 10000)
        {             
            pd[i].nazwisko = wspanialysponsor[j];
            j++;
            sprawdz = 1;
            i++;             
            
        }       

        else if (pd[i].kwota < 10000)
        {  
            
            pd[i].nazwisko = sponsor[k];
            k++;
            sprawdz1 = 1;
            i++;
           
            
        }
        
    }
   
    int z = 0;

    cout << " Nasi wspaniali sponsorzy: " << endl;
    
    while (z <= j)
    {  
        if (sprawdz == 0)
        {
            cout << "brak";
            break;
            cout << endl;
        }
        cout << endl;
        cout << " " << wspanialysponsor[z];
        z++;        
    }
    cout << "Nasi sponsorzy: ";    
    
    z = 0;
    while (z <= k)
    {
        if (sprawdz1 == 0)
        {
            cout << endl;
            cout << "brak";
            cout << endl;
            break;
        }
        cout << endl;
        cout << " " << sponsor[z];
        z++;
    }


    delete[] pd;
    delete[] wspanialysponsor;
    delete[] sponsor;
    return 0;
}
0
            pd[i].nazwisko = wspanialysponsor[j];
          

Przypisanie powinno być odwrotne...

0

@jawlo: @b4rteq: dzieki za pomoc.

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