Cześć mam takie zadanie, " Wypełnij interakcyjnie tablicę strukturami Pracownik, zawierającymi imię pracownika (char) i wiek (int).Posortuj tablicę wg składowej "wiek" używając metody bąbelkowej. Czy tablica może mieć dowolne rozmiary zadane interakcyjnie?"
I mam pytanko, wypełnić interakcyjnie to chodzi że mam np napisać funkcję która w pętli będzie pobierała wpisane dane ?
Ogólnie napisałbym to tak, zrobił bym funkcje która pobiera imię i nazwisko, zrobiłbym jeszcze jedną tablice do której będzie dostarczany wiek, i tą tablice przekaże do funkcji która będzie sortować metodą bąbelkową no i funkcję która wyświetli posortowane liczby czyli wiek naszych pracowników.
Tak to mam napisać ? Może trzeba inaczej albo jest jakiś inny sposób, łatwiejszy czy cus :D
- Rejestracja:ponad 6 lat
- Ostatnio:około 2 lata
- Postów:52

- Rejestracja:prawie 12 lat
- Ostatnio:4 minuty
- Lokalizacja:Szczecin
wypełnić interakcyjnie to chodzi że mam np napisać funkcję która w pętli będzie pobierała wpisane dane ?
Tak
zrobił bym funkcje która pobiera imię i nazwisko, zrobiłbym jeszcze jedną tablice do której będzie dostarczany wiek, i tą tablice przekaże do funkcji która będzie sortować metodą bąbelkową no i funkcję która wyświetli posortowane liczby czyli wiek naszych pracowników.
Nie, masz zrobić strukturę Pracownik
, wypełnić tablicę tych struktur i je posortować.
- Rejestracja:ponad 6 lat
- Ostatnio:około 2 lata
- Postów:52
Napisałem ale nie działa poprawnie
#include <stdio.h>
#define SIZE 5
struct Pracownik{
char imie[10];
int wiek;
};
struct Pracownik Pracownicy[5];
void bubbleSort(struct Pracownik Pracownicy[], int rozmiar)
{
int i, j, temp;
for (i = 0; i<rozmiar-1; i++)
{
for (j=0; j<rozmiar-1-i; j++)
{
if (Pracownicy[j].wiek > Pracownicy[j+1].wiek)
{
temp = Pracownicy[j+1].wiek;
Pracownicy[j+1].wiek = Pracownicy[j].wiek;
Pracownicy[j].wiek = temp;
}
}
}
}
int main() {
for(int i=1;i<=5;i++){
printf("Podaj imie i wiek pracownika nr %d\n",i);
scanf("%s %d", Pracownicy[i].imie, &Pracownicy[i].wiek);
}
bubbleSort(Pracownicy,SIZE);
for(int j=1;j<=5;j++){
printf("Pracownicy posortowanie wzgledem wieku %s %d\n",Pracownicy[j].imie,Pracownicy[j].wiek);
}
return 0;
}
- Rejestracja:ponad 6 lat
- Ostatnio:około 2 lata
- Postów:52
Działa, zmieniłem indeks na 0, miałem od 1 bo wcześniej mialem w petli printf gdzie było wyświetlanie Imie i wiek pracownika nr i tutaj nr to był indeks pętli, cos takieog to było for(i=1;i<=5;i++) printf("Imie i wiek pracownika nr %d: %s %d, i, prac.imie, prac.wiek
- Rejestracja:ponad 6 lat
- Ostatnio:około 2 lata
- Postów:52
Ktoś ma pomysł jak to zmodyfikować ? Sortuje wiek ale później wyświetla mi złe imię do wieku
#include <stdio.h>
#define SIZE 5
struct Pracownik{
char imie[10];
int wiek;
};
struct Pracownik Pracownicy[5];
void bubbleSort(struct Pracownik Pracownicy[], int rozmiar)
{
int i, j, temp;
for (i = 0; i<rozmiar-1; i++)
{
for (j=0; j<rozmiar-1-i; j++)
{
if (Pracownicy[j].wiek > Pracownicy[j+1].wiek)
{
temp = Pracownicy[j+1].wiek;
Pracownicy[j+1].wiek = Pracownicy[j].wiek;
Pracownicy[j].wiek = temp;
}
}
}
}
int main() {
for(int i=0;i<=5;i++){
printf("Podaj imie i wiek pracownika\n");
scanf("%s %d", Pracownicy[i].imie, &Pracownicy[i].wiek);
}
bubbleSort(Pracownicy,SIZE);
for(int j=0;j<=5;j++){
printf("Pracownicy posortowanie wzgledem wieku %s %d\n",Pracownicy[j].imie,Pracownicy[j].wiek);
}
return 0;
}
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.