Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ============================================================================
- Name : sortat_structura.c
- Author :
- Version :
- Copyright : Your copyright notice
- Description : Hello World in C, Ansi-style
- ============================================================================
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct{
- char nume[20];
- char prenume[20];
- int nr_matricol;
- int an;
- int partial;
- }Student;
- void sortare_bubble(Student*studenti, int nr_total){
- for(int i=0;i<nr_total;i++){
- for(int j=0;j<nr_total-1;j++){
- Student s1, s2;
- s1 = studenti[j];
- s2 = studenti[j+1];
- if (strcmp(s1.nume, s2.nume) > 0){
- studenti[j] = s2;
- studenti[j+1] = s1;
- }
- }
- }
- }
- int main(void) {
- char *nume_fisier = "src/in.txt";
- FILE *f;
- f = fopen(nume_fisier, "r");
- if (f == NULL){
- printf("Nu pot deschide %s", nume_fisier);
- return -1;
- }
- int nr_linii;
- char * linie_tmp = (char*)malloc(100*sizeof(char));
- fscanf(f, "%d\n", &nr_linii);
- int i = 0;
- Student *studenti = (Student*)malloc(nr_linii*sizeof(Student));
- while(i<nr_linii){
- fgets(linie_tmp, 99, f);
- int l;
- l = strlen(linie_tmp);
- if (l <= 2)
- continue;
- sscanf(linie_tmp, "%s %s %d %d %d",studenti[i].nume, studenti[i].prenume,
- &studenti[i].nr_matricol, &studenti[i].an, &studenti[i].partial);
- i++;
- }
- sortare_bubble(studenti, nr_linii);
- for(i=0; i<nr_linii; i++){
- printf("%s %s %d\n",studenti[i].nume,studenti[i].prenume, studenti[i].partial);
- }
- printf("nr linii: %d", nr_linii);
- free(studenti);
- free(linie_tmp);
- fclose(f);
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement