Przypisanie elementów tablic do dni tygodnia

0

Cześć,

chciałem napisać taki bardzo prosty program, w którym użytkownik wpisywać będzie liczbę do tablicy siedmioelementowej, każda szufladka w tablicy odpowiada jednemu dniu tygodnia. Potem w oddzielnej funkcji chciałem zrobić sortowanie tych liczb, tak żeby każda z liczb była przypisana do konkretnego dnia tygodnia.
I tu moje pytanie: w jaki sposób, czego powinienem użyć, żeby każdy element tablicy był przypisany do określonego dnia tygodnia - czyli goscie[0], żeby wyświetlał się jako poniedziałek, goscie[1] jako wtorek itd.

Stworzyłem coś takiego. Jestem totalnie początkujący, prosiłbym o podpowiedzi czego tu użyć, lub z czym powinienem się zapoznać żeby posortowane liczby obok samej liczby miały też wypisany dzień tygodnia który im odpowiada.

#include<iostream>
#include<cstdlib>
#include<ctime>	

using namespace std;

int goscie[6]; int suma = 0;

int liczba_gosci(int suma)
{
	srand(time(NULL));
	cout << "Tu mozesz wprowadzac ilosc zliczonych przez Ciebie gosci muzeum kazdego dnia tygodnia. " << endl <<
		"Jesli nie pamietasz ile bylo gosci danego dnia, wpisz cztery dziewiatki (program przydzieli losowe liczby)." << endl <<
		"====================================================================================================";
	for (int i = 0; i <= 6; i++)
	{
		cout << endl << "Wprowadz liczbe gosci w dniu nr " << i + 1 << ": ";
		cin >> goscie[i];
		if (goscie[i] == 9999)
			goscie[i] = rand() % 100 + 1;
		suma += goscie[i];
	}

	return suma;
}

int sortowanie()
{
	int i = 0;
	int j = 0;

	for (i = 0; i < 6; i++)
	{
		for (j = 0; j < 6; j++)
		{
			if (goscie[j] > goscie[j + 1])
			{
				swap(goscie[j], goscie[j + 1]);
				
			}
		}
	}	
		for (i = 0; i < 7; i++)
	{
		cout << goscie[i] << " \n";
	}
		
	return 0;
}

int main()
{
	cout << "==========================================\nCalkowita liczba gosci w tym tygodniu: " << liczba_gosci(suma) << endl << endl;
	cout << "Poniedzialek: " << goscie[0] << endl;
	cout << "Wtorek: " << goscie[1] << endl;
	cout << "Sroda: " << goscie[2] << endl;
	cout << "Czwartek: " << goscie[3] << endl;
	cout << "Piatek: " << goscie[4] << endl;
	cout << "Sobota: " << goscie[5] << endl;
	cout << "Niedziela: " << goscie[6] << endl << endl;



// tutaj chciałbym wywowołać funkcję sortowanie, tylko jak, żeby działała w ten sposób jak opisałem?
}
7

masz błędy w tym kodzie. Np bffer overflow: int goscie[6]; vs for (int i = 0; i <= 6; i++).

Co do tematu, nie za bardzo rozumiem o co ci chodzi.

Opisz co ma być na wejsciu a co na wyjściu (najlepiej na przykładzie).

1

Wersja 1:

struct { unsigned count,day; } wisitors[7];

Wersja 2:

unsigned wisitors[7],days[7]; // swap'ować równolegle

Wersja 3:

unsigned wisitors[7],indexes[7]={0,1,2,3,4,5,6};
if (goscie[indexes[j]] > goscie[indexes[j + 1]])
{
    swap(indexes[j], indexes[j + 1]);
}

W każdym przypadku:

const char *daynames[]={"Poniedzialek","Wtorek","Sroda","Czwartek","Piatek","Sobota","Niedziela"};
for(int i=0;i<7;++i) cout<<daynames[i]<<": "<<goscie[i]<<endl;
0

@MarekR22:
W tym momencie posortowane liczby prezentują się tak:
image

Chciałbym, żeby obok każdej z liczb stał dzień tygodnia lub chociaż numer elementu tablicy, czyli np.
Dzien nr 3: 1
Dzien nr 7: 5
Dzien nr 1: 12

@_13th_Dragon:
Dziękuję, analizuję właśnie Twoją odpowiedź, choć nie przychodzi mi to z łatwością gdyz nie wszystko jeszcze rozumiem.

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