Дан файл, содержащий сведения о учениках школы. Выяснить, имеются ли в школе однофамильцы - C (СИ)

Формулировка задачи:

Сведения об ученике состоят из его имени и фамилии и названия класса (года обучения и буквы), в котором он учился. Дан файл, содержащий сведения о учениках школы. Выяснить, имеются ли в школе однофамильцы. Имеются ли однофамильцы в параллельных классах классах. Имеются ли однофамильцы в каком-нибудь классе.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct list {
    int q;
    char name[20];
    char fam[30];
    char dan[10];
}mys[5];
 
   
 int main()
{   int k=0;
    FILE *fp;
    int i=0;  
    if ((fp = fopen("list.txt","r+")) == NULL)
            printf("ERROR!");
    else
            printf("File found!\n");
         
 for(i=1;i<5;i++)
        fscanf(fp,"%s %s %s", mys[i].fam, mys[i].name,mys[i].dan);
   
for(i=0;i<5;i++)
    {
    printf("%s %s %s", mys[i].name, mys[i].fam,mys[i].dan);
    printf("\n");
    }
     for(i=0;i<5;i++)
     for(int j=i+1;j<5;j++)
        {printf ("%s %s\n",mys[i].fam, mys[j].fam);
                     if( strcmp( mys[i].fam, mys[j].fam ) == 0 ) k++;   }                  
       
    if(k>0) printf("FOUND\n");
    else printf("NOT  FOUND %d",k);
   
   system("PAUSE");
     
}
Это всё, что смог сделать,не знаю как сверить всё со всеми и как сделать так, чтобы количество строк для считывания задавалось в файле 1 строкой. Файл вида: 5 \\ кол-во строк в файле ФФФФФФ ИИИИИ ВВВВ ФФФФФФ ИИИИИ ВВВВ ФФФФФФ ИИИИИ ВВВВ ФФФФФФ ИИИИИ ВВВВ ФФФФФФ ИИИИИ ВВВВ Не против других способов решения. Обязательно наличие класса. Если не сложно сделайте готовом варианте. Заранее огромное спасибо.

Код к задаче: «Дан файл, содержащий сведения о учениках школы. Выяснить, имеются ли в школе однофамильцы - C (СИ)»

textual
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct list {
    int q;
    char name[20];
    char fam[30];
    char dan[10];
}mys[5];
 
   
 int main()
{   int k=0,n,odin_klass=0,drug_klass=0;
    FILE *fp;
    int i=0,j;  
    if ((fp = fopen("list.txt","r")) == NULL)
            printf("ERROR!");
    else
            printf("File found!\n");
 
 fscanf(fp,"%d",&n);
 
 for(i=1;i<n;i++)
        fscanf(fp,"%s %s %s", mys[i].fam, mys[i].name,mys[i].dan);
   
for(i=0;i<n;i++)
    {
    printf("%s %s %s", mys[i].name, mys[i].fam,mys[i].dan);
    printf("\n");
    }
     for(i=0;i<n;i++)
     for(j=i+1;j<n;j++)
        {
        //  printf ("%s %s\n",mys[i].fam, mys[j].fam);
                     if( strcmp( mys[i].fam, mys[j].fam ) == 0 )
                     {
                        k++;
                        if(  strcmp( mys[i].dan, mys[j].dan ) == 0  )
                            odin_klass++;
                        else
                            drug_klass++;  
                     }
        }                  
       
    if(k>0) printf("FOUND\n");
    else printf("NOT  FOUND %d\n",k);
    printf("\nV odnom klasse: %d\n",odin_klass);
    printf("V paral klassah: %d\n",drug_klass);
   
   system("PAUSE");
   
}

12   голосов, оценка 4.083 из 5


СОХРАНИТЬ ССЫЛКУ