[C] Program przechowujący dane o akademikach

toriasek1533
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 18 kwie 2011, o 10:05
Płeć: Mężczyzna
Lokalizacja: Wrocław

[C] Program przechowujący dane o akademikach

Post autor: toriasek1533 »

witam ma kłopot ze skończeniem programu.
wiec proszę was o pomoc (jak można to niech ktoś dopisze resztę)

oto treść zadania:

napisać program który w tablicy struktur będzie przechowywał informacje o akademikach. dla każdego akademika ma być
przechowywane:
1. adres akademika
2. numer akademika
3. liczba miejsc w akademiku
4. aktualna liczba mieszkańców
program ma zapewniać:
a) wpisywanie kolejnych informacji do tablicy w taki sposób by były one uporządkowane według numeru akademika
b) wydruk zawartości tablicy

a to co ja do tej pory zrobiłem:

Kod: Zaznacz cały

# include <stdio.h>
# include <string.h>

int main ()

{
   struct baza 
   {
          char adres_akademika[100];
          char numer_akademika[100];
          char liczba_miejsc[100];
          char liczba_mieszkancow[100];
          };
          
          
          int i, ile;
          struct baza akademik[100];
          
          
          printf ("Podaj liczbe akademikow: ");
          scanf ("%d",&ile);
          for ( i=0; i<=ile; i++)
          
    {   
   printf ("Podaj adres akademika: ");
   scanf ("%s", &akademik[i].adres_akademika);
   
   printf ("Podaj numer akademika: ");
   scanf ("%d", &akademik[i].numer_akademika);
   
   printf ("Podaj liczbe miejsc w akademiku: ");
   scanf ("%d", &akademik[i].liczba_miejsc);
   
   printf ("Podaj liczbe mieszkancow: ");
   scanf ("%d", &akademik[i].liczba_mieszkancow);
}
   system("PAUSE");
   return 0;
}
-- 30 maja 2011, o 10:31 --

po zmianie kilku rzeczy program wygłąda tak:

Kod: Zaznacz cały

#include <stdio.h>

  
  struct baza 
{
  
  char adres_akademika[100];
  int numer_akademika;
  int liczba_miejsc;
  float liczba_mieszkancow;
};


int main()
{
 int i,ile;
 struct baza akademik[100];
 
 
 printf ("Podaj liczbe akademikow: ");
 scanf ("%d", &ile);
 for (i=0; i<ile; i++)
{
  printf ("Podaj adres akademika: ");
  scanf(" %[-' A-Za-z]s",&akademik[i].adres_akademika);
  printf (" Podaj numer akademika: ");
  scanf ("%d", &akademik[i].numer_akademika);
  printf (" Podaj liczbe miejsc: ");
  scanf ("%d", &akademik[i].liczba_miejsc);
  printf (" Podaj liczbe mieszkancow: ");
  scanf ("%f", &akademik[i].liczba_mieszkancow);
} 
 for (i=0; i<ile; i++)
 {
     if(akademik[i].numer_akademika>=1&&akademik[i].numer_akademika<=100)
     {
         printf("Adres akademika: %s \n",akademik[i].adres_akademika);
         printf("Numer akademika: %d\n", akademik[i].numer_akademika);
         printf("liczba miejsc: %d\n", akademik[i].liczba_miejsc);
         printf("liczba mieszkancow: %.1f\n\n\n", akademik[i].liczba_mieszkancow);
     }
 }
  system("PAUSE");	
  return 0;
}
ale niestety nie wypisuje akademików w odpowiedniej kolejności :(
mógłby ktoś napisać gdzie mam błąd i jak go poprawic
Ostatnio zmieniony 21 cze 2011, o 11:24 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Awatar użytkownika
mcbob
Użytkownik
Użytkownik
Posty: 479
Rejestracja: 15 gru 2008, o 19:02
Płeć: Mężczyzna
Lokalizacja: Poland
Pomógł: 69 razy

[C] Program przechowujący dane o akademikach

Post autor: mcbob »

A dlaczego miałby wypisywać w odpowiedniej kolejności? Musisz najpierw posortować tablicę po numerze akademika.
toriasek1533
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 18 kwie 2011, o 10:05
Płeć: Mężczyzna
Lokalizacja: Wrocław

[C] Program przechowujący dane o akademikach

Post autor: toriasek1533 »

ok, ale wiele to mi nie mówi, ten program napisałem z pomocą 2 kolegów ( sam jestem bardzo cienki z tego przedmiotu ) więc proszę was o konkretne poprawienie ( bądź dopisanie ) tego co brakuje w tym programie
pozdrawiam
ODPOWIEDZ