Ребят, всем доброго времени суток )))
Помогите, очень прошу, составить алгоритм по коду... язык С
Сама пыталась делать, но запуталась... завтра сдавать...а он не готов до сих пор..
очень на Вас надеюсь.. пооожалуйста )
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM 5
#define MAX_RYHM 10
#define LENGHT_NIMI 30
#define LENGHT_LIIK 10
struct Ryhm {
char nimi[LENGHT_NIMI];
char liik[LENGHT_LIIK];
int vanus;
};
struct Kuchka {
struct Ryhm elements[MAX_RYHM];
int size;
char name[LENGHT_LIIK];
};
struct Ryhm tekushajaRyhm;
struct Kuchka kuchki[NUM];
void read() {
FILE *fData;
if ((fData = fopen("F1", "r")) == NULL) {
printf("Pri otkrqtii faila F1 proizoshla oshibka\n");
exit(1);
}
int i = 0;
int j;
while (fscanf(fData, "%[^\n]", tekushajaRyhm.nimi) == 1) {
fscanf(fData, "%s", tekushajaRyhm.liik);
fscanf(fData, "%d", &tekushajaRyhm.vanus);
fscanf(fData, "%d"); // proposkaem lishnuju stroku
int index = 1; // animal
for (j = 0; j < NUM; j++) //
if ((strcmp(tekushajaRyhm.liik, kuchki[j].name) == 0)) {
index = j;
break;
}
strcpy(kuchki[index].elements[kuchki[index].size].nimi, tekushajaRyhm.nimi);
strcpy(kuchki[index].elements[kuchki[index].size].liik, tekushajaRyhm.liik);
kuchki[index].elements[kuchki[index].size].vanus = tekushajaRyhm.vanus;
kuchki[index].size++;
i++;
if (i == MAX_RYHM) {
printf("massiv zapolnen\n");
break;
}
}
fclose(fData);
}
void write() {
FILE *fOut = fopen("F2", "w");
if (fOut == NULL) {
printf("Pri otkrqtii faila F2 proizoshla oshibka\n");
exit(1);
}
int k, j;
for (j = 0; j < NUM; j++) { //dlja kazdoj kuchki
fprintf(fOut, "\nliik: %s\n", kuchki[j].name);
for (k = 0; k < kuchki[j].size; k++) //dlja kazdogo elementa v kuchke
fprintf(fOut, "nimi: %s\nvanus: %d\n", kuchki[j].elements[k].nimi, kuchki[j].elements[k].vanus);
}
fclose(fOut);
}
int main(void) {
int i;
for (i = 0; i < NUM; i++)
kuchki[i].size = 0; // ubiraem sluchainqe znachenia
strcpy(kuchki[0].name, "human");
strcpy(kuchki[1].name, "animal");
strcpy(kuchki[2].name, "bird");
strcpy(kuchki[3].name, "fish");
strcpy(kuchki[4].name, "insect");
read();
write();
exit(0);
}