контрольная
.docМинистерство образования Республики Беларусь
Учреждение образования
“Белорусский государственный университет информатики и радиоэлектроники”
Кафедра ПОИТ
Факультет непрерывного и дистанционного обучения
Контрольная работа №1
по дисциплине
«Конструирование программ и языки программирования»
Выполнила
студентка группы Шашкова Е.В.
801021с-18
Руководитель Шостак Е.В.
Минск 2010
Тема работы. СТУКТУРЫ
Задача:
Информация об участниках спортивных соревнований содержит:
-
фамилию игрока;
-
название команды;
-
рост игрока.
Вывести название и средний рост самой рослой команды.
Решение
#include <stdio.h>
#include <string.h>
#include <iostream.h>
#include<conio.h>
#include<stdlib.h>
#include <math.h>
struct sorev//объявление структуры "Соревнование" и её элементов
{
char team_name[20];
struct igrok//объявление вложенной структуры "Игрок" и её элементы
{
char familiya[20];
int rost;
}igrok[3];
}team[3];
void main()
{
int i,max,imax,j,sred,max1;
printf("Vvedite dannie o sorevnovanijah:\n\n");
for (i=1;i<=2;i++)// цикл ввода данных для структуры "Соревнование"
{
printf("Vvedite nazvanie komandi %d:\n",i);
scanf("%s",&team[i].team_name);
for (j=1;j<=3;j++)// цикл ввода данных для структуры "Игрок"
{
printf("Vvedite familiu igroka %d:\n",j);
scanf("%s",&team[i].igrok[j].familiya);
printf("Vvedite rost igroka %d:\n",j);
scanf("%d",&team[i].igrok[j].rost);
}
}
max=team[1].igrok[1].rost;//присваивание игроку 1 роста 1 команды максимального значения
for (i=1;i<=2;i++)
{
for (j=1;j<=3;j++)//цикл поиска самого высокого игрока в командах
{
if (max<team[i].igrok[j].rost)
{
max=team[i].igrok[j].rost;
imax=i;
}
else
imax=i;
}
}
if (team[imax].igrok[1].rost > team[imax].igrok[2].rost)//условие поиска игрока среднего роста в самой высокой команде
{
if (team[imax].igrok[1].rost > team[imax].igrok[3].rost)
{
max1=team[imax].igrok[1].rost;
if (team[imax].igrok[2].rost > team[imax].igrok[3].rost)
sred = team[imax].igrok[2].rost;
else
sred = team[imax].igrok[3].rost;
}
else
sred = team[imax].igrok[1].rost;
}
else
{
if (team[imax].igrok[2].rost > team[imax].igrok[3].rost)
{
max1=team[imax].igrok[2].rost;
if (team[imax].igrok[1].rost > team[imax].igrok[3].rost)
sred=team[imax].igrok[1].rost;
else
sred=team[imax].igrok[3].rost;
}
else
sred=team[imax].igrok[2].rost;
}
//вывод полученных данных на экран
printf("Samaya roslaja komanda: = %s\n",team[imax].team_name);
printf("Sredni rost v etoj komande: = %d\n",sred);
printf("Maksimalnyj rostv etoj komande: = %d\n",max);
}