/*
 * Verwaltung von Studentendaten in Strukturen
 */

#include <stdio.h>

#define NUM_STUD  6

struct student {
  char nachname[25];
  char vorname[25];
  char gebdatum[11];
  long matrnr;
  short gruppe;
  char best;
};

void read_data(struct student std[], int index);
void write_data(struct student std);
void set_test_result(struct student std[]);

int main()
{
  int i;
  struct student gruppe8[NUM_STUD];

  for (i=0; i<NUM_STUD; i++) {
    read_data(gruppe8, i);
    printf("\n");
  }

  printf("\n");
  set_test_result(gruppe8);

  for (i=0; i<NUM_STUD; i++) {
    write_data(gruppe8[i]);
    printf("\n");
  }

  return 0;
}

void read_data(struct student std[], int index)
{
  printf("Nachname                  : ");
  scanf("%24s", std[index].nachname);
  printf("Vorname                   : ");
  scanf("%24s", std[index].vorname);
  printf("Geburtsdatum (tt.mm.jjjj) : ");
  scanf("%11s", std[index].gebdatum);
  printf("Matrikelnummer            : ");
  scanf("%ld", &std[index].matrnr);
  printf("Gruppe                    : ");
  scanf("%hd", &std[index].gruppe);
  std[index].best = '?';
}

void write_data(struct student std)
{
  printf("Name: %s %s\n", std.vorname, std.nachname);
  printf("Geb.: %s\tMatr.: %ld\n", std.gebdatum, std.matrnr);
  printf("Grp.: %hd\t\t\tBest.: %c\n", std.gruppe, std.best);
}

void set_test_result(struct student std[])
{
  int i;

  for(i=0; i<NUM_STUD; i++) {
    if(std[i].matrnr%3==0 || std[i].matrnr%5==0)
      std[i].best='j';
    else
      std[i].best='n';
  }
}

