Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
const m=6;
struct student
{
char family[30], name[20], father[20], group, marks[m], num;
};
student all[25], temp;
void main()
{
randomize();
clrscr();
char num, i, j, f=1;
printf("Enter number of students: ");
scanf("%d",&num);
if (num>25 || num<1)
{
printf("Wrong number.");
return;
}
for (i=0;i<=num-1;i++)
{
printf("\nEnter family name (%d): ",i+1);
scanf("%s",all[i].family);
printf("Enter name (%d): ",i+1);
scanf("%s",all[i].name);
printf("Enter father name (%d): ",i+1);
scanf("%s",all[i].father);
printf("Enter group (%d): ",i+1);
scanf("%s",all[i].group);
printf("Enter passed exams 1-yes, 0-no (%d): ",i+1);
all[i].num=0;
for (j=0;j<=m-1;j++)
{
all[i].marks[j]=getch();
all[i].marks[j]-=48;
printf("%d ",all[i].marks[j]);
all[i].num+=all[i].marks[j];
}
printf("\nNumber of passed exams (%d): %d",i+1,all[i].num);
printf("\n------------------------------------");
}
while (f==1)
{
f=0;
for (i=0;i<=num-2;i++)
{
if (all[i].num<all[i+1].num)
{
f=1;
temp=all[i];
all[i]=all[i+1];
all[i+1]=temp;
}
}
}
for (j=0;j<=m;j++)
{
f=1;
while (f==1)
{
f=0;
for (i=0;i<=num-2;i++)
{
if (strcmp(all[i+1].family,all[i].family)<0 && all[i].num==j && all[i+1].num==j)
{
f=1;
temp=all[i];
all[i]=all[i+1];
all[i+1]=temp;
}
}
}
}
printf("\n\nNew list:\n");
for (i=0;i<=num-1;i++)
{
printf("Family name %d: ",i+1);
puts(all[i].family);
}
getch();
}