Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные / Лр №9. Структуры / Примеры решения Лр №9.Структуры

.odt
Скачиваний:
11
Добавлен:
17.04.2015
Размер:
16.94 Кб
Скачать

Задание 1.

//Декларация, ввод, вывод структур.

//1. Описать структуру с именем STUDENT, содержащую следующие поля:

//• фамилия и инициалы;

//• номер группы;

//• успеваемость (массив из пяти элементов).

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#include<string.h>

struct student

{

char fio[30];

int ng;

int kurs[5];

};

int main()

{

void scanstu(student &stud);

void printstu(student &stud);

student stu, fest[10];

int i,n,nmax;

float max;

printf("Vvesti k-vo studentov \n");

scanf("%i",&n);

for(i=0;i<n;i++)

{

scanstu(stu);

fest[i]=stu;

}

for(i=0;i<n;i++)

{

stu= fest[i];

printstu(stu);}

system("pause");

return 0;

}

void scanstu(student &stud)

{

printf("\n Vvedite studenta\n");

printf("\n Vvecti FIO ");

scanf("%s",stud.fio);

printf("\n Vvesti N G ");

scanf("%i",&stud.ng);

printf("\n Vvesti 5 ozenok ");

for (int i=0;i<5;i++) scanf("%i",&stud.kurs[i]);

}

void printstu(student &stud)

{

printf(" FIO nomer gruppy Ozenki\n");

printf("%s %i %i %i %i %i %i \n",stud.fio, stud.ng,stud.kurs[0],stud.kurs[1],stud.kurs[2],stud.kurs[3],stud.kurs[4]);

}

Задание 2.

//Написать программу, выполняющую:

//• ввод с клавиатуры данных в массив, состоящий из десяти структур типа

//STUDENT; записи должны быть упорядочены по возрастанию номера группы;

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#include<string.h>

struct student

{

char fio[30];

int ng;

int kurs[5];

};

int main()

{

void scanstu(student &stud);

void printstu(student &stud);

void sortirovka(student fes[],int n);

student stu, fest[10];

int i,n,nmax;

float max;

printf("Vvesti k-vo studentov \n");

scanf("%i",&n);

for(i=0;i<n;i++)

{

scanstu(stu);

fest[i]=stu;

}

for(i=0;i<n;i++)

{

stu= fest[i];

printstu(stu);}

sortirovka(fest,n);

for(i=0;i<n;i++)

{

stu= fest[i];

printstu(stu);}

system("pause");

return 0;

}

void scanstu(student &stud)

{

printf("\n Vvedite studenta\n");

printf("\n Vvecti FIO ");

scanf("%s",stud.fio);

printf("\n Vvesti N G ");

scanf("%i",&stud.ng);

printf("\n Vvesti 5 ozenok ");

for (int i=0;i<5;i++) scanf("%i",&stud.kurs[i]);

}

void printstu(student &stud)

{

printf(" FIO nomer gruppy Ozenki\n");

printf("%s %i %i %i %i %i %i\n",stud.fio, stud.ng,stud.kurs[0],stud.kurs[1],stud.kurs[2],stud.kurs[3],stud.kurs[4]);

}

void sortirovka(student fes[],int n)

{

student stu;

int i,j;

for (i=0;i<n-1;i++)

for(j=0;j<n-1;j++)

if (fes[j].ng>fes[j+1].ng)

{stu=fes[j];

fes[j]=fes[j+1];

fes[j+1]=stu;

}

}

  1. Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из десяти структур типа

STUDENT; записи должны быть упорядочены по возрастанию номера

группы;

• вывод на дисплей фамилий и номеров групп для всех студентов, включенных

в массив, если средний балл студента больше 4,0;

• если таких студентов пет, вывести соответствующее сообщение.

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#include<string.h>

struct student

{

char fio[30];

int ng;

int kurs[5];

};

int main()

{

void scanstu(student &stud);

void printstu(student &stud);

void sortirovka(student fes[],int n);

float sbal(student &stud);

student stu, fest[10];

int i,n,nmax;

float sball;

printf("Vvesti k-vo studentov \n");

scanf("%i",&n);

for(i=0;i<n;i++)

{

scanstu(stu);

fest[i]=stu;

}

for(i=0;i<n;i++)

{

stu= fest[i];

printstu(stu);}

sortirovka(fest,n);

for(i=0;i<n;i++)

{

stu= fest[i];

printstu(stu);}

int j=0;

for (i=0; i<n; i++){

stu=fest[i];

sball= sbal(stu);

if(sball>4.0){ printstu(stu);j++;}

}

if(j=0)printf("Net studentov imeythih CB > 4\n");

system("pause");

return 0;

}

void scanstu(student &stud)

{

printf("\n Vvedite studenta\n");

printf("\n Vvecti FIO ");

scanf("%s",stud.fio);

printf("\n Vvesti N G ");

scanf("%i",&stud.ng);

printf("\n Vvesti 5 ozenok ");

for (int i=0;i<5;i++) scanf("%i",&stud.kurs[i]);

}

void printstu(student &stud)

{

printf(" FIO nomer gruppy Ozenki\n");

printf("%s %i %i %i %i %i %i\n",stud.fio, stud.ng,stud.kurs[0],stud.kurs[1],stud.kurs[2],stud.kurs[3],stud.kurs[4]);

}

void sortirovka(student fes[],int n)

{

student stu;

int i,j;

for (i=0;i<n-1;i++)

for(j=0;j<n-1;j++)

if (fes[j].ng>fes[j+1].ng)

{stu=fes[j];

fes[j]=fes[j+1];

fes[j+1]=stu;

}

}

float sbal(student &stud)

{float sb=0;

for (int i=0;i<5;i++)

sb+=stud.kurs[i];

return (sb/5);

}