Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
17.04.2013
Размер:
1.67 Кб
Скачать
#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();
}
Соседние файлы в папке Структуры