You are on page 1of 2

#define _CRT_SECURE_NO_WARNINGS

#define size 100


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

struct elev {
char nume[size];
char sex[size];
char scoala[size];
float medie_examen;
float nota_programare;
};
int main() {

int n = 0, a;
FILE*f, *g;
printf("\nIntroduceti nr de elevi: ");
scanf("%d", &a);
struct elev* p;
f = fopen("citire.txt","r");
g = fopen("afisare.txt", "w");
p = (struct elev*)malloc(a * sizeof(struct
elev));
if (p == NULL)
{
printf("\nalocare nereusita");
return 0;
}
for (int i = 0; i < a; i++)
{
fscanf(f, "%s", (p + i)->nume);
fscanf(f, "%s", (p + i)->scoala);
fscanf(f, "%s", (p + i)->sex);
fscanf(f, "%f", &(p + i)->medie_examen);
fscanf(f, "%f", &(p + i)->nota_programare);
}
for (int i = 0; i < a; i++)
{
if (strcmp((p + i)->sex, "feminin") == 0)
n++;
fprintf(g, "\n Numele: %s", (p + i)-
>nume);
fprintf(g, "\nScoala: %s", (p + i)-
>scoala);
fprintf(g, "\nSexul: %s", (p + i)-
>sex);
fprintf(g, "\nMedia obtinuta la
examen: %f", (p + i)->medie_examen);
fprintf(g, "\nNota programare: %f",
(p + i)->nota_programare);
fprintf(g, "\n");
}

for (int i = 0; i < a; i++)


{
if ((p+i)->medie_examen>5 && (p + i)-
>nota_programare>5)
{
fprintf(g, "\n");
fprintf(g, "\nSTUDENT ADMIS:");
fprintf(g, "\n Numele: %s", (p + i)-
>nume);
fprintf(g, "\nMedia obtinuta la
examen: %f", (p + i)->medie_examen);
fprintf(g, "\nNota programare: %f",
(p + i)->nota_programare);
}
else
{
fprintf(g, "\n ");
fprintf(g,"\nSTUDENT NEADMIS: ");
fprintf(g, "\n Numele: %s", (p + i)-
>nume);
fprintf(g, "\nMedia obtinuta la
examen: %f", (p + i)->medie_examen);
fprintf(g, "\nNota programare: %f",
(p + i)->nota_programare);
}
}
fclose(f);
fclose(g);

int b[size], *q;


q = b;
q = (int*)malloc(a * sizeof(int));
for (int i = 0; i < a; i++)
{
*(q + i) = (p + i)->medie_examen;

}
int max = *(q + 0);
for (int i = 1; i < a; i++)
if (*(q + i) > max)
max = *(q + i);
printf("Media cea mai mare este: %d", max);

free(p);
free(q);
}

You might also like