Как создать массив структур я знаю, непонятно как его в функции использовать.
Пока что написал так:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define DL_FIO 20
#define DL_GR 5
#define DL_DOLGNOST 20
#define DL_DOMADR 12
#define DL_DOMTEL 8
#define NMAX 100
struct SVEDENIYA
{ char fio[DL_FIO];
char gr[DL_GR];
char dolgnost[DL_DOLGNOST];
char domadr[DL_DOMADR];
char domtel[DL_DOMTEL];
};
struct EL_MAS
{ char fio[DL_FIO];
char dolgnost[DL_DOLGNOST];
char domadr[DL_DOMADR];
char domtel[DL_DOMTEL];
};
void Uporyad(FILE *f);
void Zapis(FILE *fin);
void Pechat(FILE *f);
int main()
{
FILE *f ;
string ms[NMAX];
int n;
clrscr();
f=fopen(“spisok.txt”, ”r”);
if(f==NULL)
{
printf(“Fail spisok.txt ne naiden”);
getch();
return 1;
}
do
printf(“\n===========================================”);
printf(“\nViberite nomer punkta menu:”);
printf(“\n1-uporyadochivanie spiska sotrudnikov po alfavitu”);
printf(“\n2-pechat spiska sotrudnikov, u kotorih est’ domashniy telefon”);
printf(“\n3-vyhod”);
printf(“\n----------------------------------------------------------------------\n”);
n=getche();
switch(n)
{
case ‘1’: Uporyad(f); break;
case ‘2’: Pechat(f); break;
case ‘3’: break;
default: printf(“\n nuzhno vvodit’ cifru ot 1 do 3”);
}
if(n!=’3’)
{ printf(“\n Dlya prodolzheniya nazhmite lubuyu klavishu”);
getch();
}
}
while(n!=’3’);
fclose(f);
return 0;
}
void Uporyad(FILE *f)
{ int k,i;
struct SVEDENIYA s;
for(k=n-1; k>0; k--)
for(i=0; i<k; i++)
if(strcmp(ms[i].fio,ms[i+1].fio)>0)
{
s=ms[i];
ms[i]=ms[i+1];
ms[i+1]=s;
}
Не уверен только, можно ли в функции Uporyad ссылаться на массив таким образом