#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{ typedef struct
{
char name[256];
char group_number;
char surname[256];
char sex;
}group;
group *stud;
int count=0,i=0,sum=0,sum1=0,sum2=0,p=0,amount=0;
char sex=0,group1=0;
clrscr();
printf("Amount of student: ");
do
{
p=scanf("%4d",&count);
fflush(stdin);
if ((p!=1) || (count<1)) printf("Warning! Incorrectly input! Please return attempt! \n");
}
while ((p!=1) || (count<1));
stud=(group*)malloc((sizeof(group))*count);
for (i=0;i<count;i++)
{
printf("\nStudent number %d \nname: ",i+1);
do
{
p=scanf("%256s",&((stud+i)->name));
fflush(stdin);
if (p!=1) printf("Warning! Incorrectly input! Please return attempt! \n");
}
while (p!=1);
printf("\nStudent surnumber %d \nsurname: ",i+1);
do
{
p=scanf("%256s",&((stud+i)->surname));
fflush(stdin);
if (p!=1) printf("Warning! Incorrectly input! Please return attempt! \n");
}
while (p!=1);
printf("\nGroup number:");
do
{
group1=getch()-'0';
if ( (group1>=1) && (group1<=3))
{
(stud+i)->group_number=group1;
printf("%c",group1+'0');
}
}
while ( (group1<1) ||(group1>3));
printf("\nStudent sex M/F(Male/Female):\n");
do
{
sex=getch();
if ((sex=='M') || (sex=='m') || (sex=='F') || (sex=='f'))
{
(stud+i)->sex=sex;
printf("\n%c",(stud+i)->sex);
}
}
while ( (sex!='M') && (sex!='m') && (sex!='F') && (sex!='f'));
}
////////////////////////////////////////////////////////////////////////
for (i=0;i<count;i++)
{
if ( ((stud+i)->sex=='M') || ((stud+i)->sex=='m') )
{
if((stud+i)->group_number==1)
sum+=1;
if((stud+i)->group_number==2)
sum1+=1;
if((stud+i)->group_number==3)
sum2+=1;
}
}
if((sum>sum1) && (sum>sum2))
{
puts("\nIn group number 1 more men that in other.");
}
else if((sum1>sum) && (sum1>sum2))
{
puts("\nIn group number 2 more men that in other.");
}
else if((sum2>sum) && (sum2>sum1))
{
puts("\nIn group number 3 more men that in other.");
}
else
puts("\nThere are no group, where men more than in other");
////////////////////////////////////////////////////////////////////////
getch();
}
Обработка структуры в Си
В приведенном примере все устраевает до куска, который ограничен сверху и снизу полосой "/".
Помогите переделать фильтрацию для поиска наибольшего кол-ва студентов мужского пола в группе.
Код:
Я прикрепил этот же файл в виде исходника...