Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2011, 00:26   #1
ZasZas13
Пользователь
 
Регистрация: 20.12.2011
Сообщений: 10
Радость Структуры

Задание:Поля записи: фамилия участника соревнований по троеборью, год рождения, результаты в отдельных видах
Упорядочить список участников соревнований по убыванию сумм результатов, определить победителей в каждом виде.
Преподаватель говорит что нахожу победителей не правильно,даёт свои числа и правда не правильно находиться,максимум)помогите с максимумом!
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "stdio.h"
#include "string.h"
int _tmain(int argc, _TCHAR* argv[])
{bool flag;
int max0,max1,max2,max3;
const int nn=30;
struct stud
{
char fam[30];
int rogd[3];
int result[3];
int sum;
};

setlocale (0,"Rus");
stud a[nn],max;
int i,f,n,j;
char str[nn];
char m1,m2,m3,m4;
printf ("Введите кол-во записей ");
scanf ("%d",&n);
for (i=0;i<n;i++)
{
printf ("\nФамилия: ");
scanf("%s", a[i].fam);
printf("Дата рождения: число.месяц.год: ");
scanf("%d%c%d%c%d",&a[i].rogd[0],&m1,&a[i].rogd[1],&m2,&a[i].rogd[2]);
printf ("Результаты троеборья(1/2/3): ");
scanf ("%d%c%d%c%d", &a[i].result[0],&m3,&a[i].result[1],&m4,&a[i].result[2]);
a[i].sum=a[i].result[0]+a[i].result[1]+a[i].result[2];
printf ("Сумма баллов: %d\n", a[i].sum);
}
f=0;
do
{
f++;
flag=false;
for(i=0;i<(n-f);i++)
if (a[i].sum> a[i+1].sum)
{
max=a[i];
a[i]=a[i+1];
a[i+1]=max;
flag=true;
}
}
while(flag);
for (i=0;i<n;i++)
{
printf ("\nФамилия: %s", a[i].fam);
printf ("\tДата рождения: %d.%d.%d", a[i].rogd[0],a[i].rogd[1],a[i].rogd[2]);
printf ("\tРезультаты троеборья(1/2/3): %d/%d/%d", a[i].result[0],a[i].result[1],a[i].result[2]);
printf ("\tСумма баллов: %d\n", a[i].sum);
}
max1=a[0].result[0];
max2=a[0].result[1];
max3=a[0].result[2];
for(i=0;i<n;i++)
{if(a[i].result[0]>max1)max1=a[i].result[0];
if(a[i].result[1]>max2)max2=a[i].result[1];
if(a[i].result[2]>max3)max3=a[i].result[2];
}
printf ("\n");
for (i=0;i<n;i++)
if (a[i].result[0]==max1)
{
printf ("\nМаксимальное количество баллов (%d) по 1 состязанию набрал(ли):",max1);
printf ("\nФамилия: %s", a[i].fam);
printf ("\tДата рождения: %d.%d.%d", a[i].rogd[0],a[i].rogd[1],a[i].rogd[2]);
printf ("\tРезультаты троеборья(1/2/3): %d/%d/%d", a[i].result[0],a[i].result[1],a[i].result[2]);
printf ("\tСумма баллов: %d\n", a[i].sum);
}
printf ("\n");
for (i=0;i<n;i++)
if (a[i].result[1]==max2)
{
printf ("\nМаксимальное количество баллов (%d) за 2 состязанию набрал(ли):",max2);
printf ("\nФамилия: %s", a[i].fam);
printf ("\tДата рождения: %d.%d.%d", a[i].rogd[0],a[i].rogd[1],a[i].rogd[2]);
printf ("\tРезультаты троеборья(1/2/3): %d/%d/%d", a[i].result[0],a[i].result[1],a[i].result[2]);
printf ("\tСумма баллов: %d\n", a[i].sum);
}
printf ("\n");
for (i=0;i<n;i++)
if (a[i].result[2]==max3)
{
printf ("Максимальное количество баллов (%d) за 3 состязанию набрал(ли):",max3);
printf ("\nФамилия: %s", a[i].fam);
printf ("\tДата рождения: %d.%d.%d", a[i].rogd[0],a[i].rogd[1],a[i].rogd[2]);
printf ("\tРезультаты троеборья(1/2/3): %d/%d/%d", a[i].result[0],a[i].result[1],a[i].result[2]);
printf ("\tСумма баллов: %d\n", a[i].sum);
}

getch();
return 0;
}
ZasZas13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
структуры Alexander1205 Общие вопросы C/C++ 12 15.04.2011 21:15
Структуры c++ Lille Happy Помощь студентам 1 25.11.2010 12:39
Структуры в СИ vovalski Общие вопросы C/C++ 1 22.11.2010 11:13
Структуры C++ Irino4ka-LOL Помощь студентам 1 15.02.2010 08:44
Структуры в C++ Wia Помощь студентам 7 18.04.2009 15:51