|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.12.2011, 00:29 | #1 |
Пользователь
Регистрация: 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; } |
29.12.2011, 13:35 | #2 |
Пользователь
Регистрация: 28.12.2011
Сообщений: 27
|
замени цикл сортировки
for( int j = 0; j < n; j++) { for( int i = j + 1; i < n; i++ ) { if( a[ j ].sum < a[ i ].sum ) { std::swap( a[ i ], a[ j ] ); } } } //maximum element a[ 0 ] //minimum element a[ n - 1 ] вместо своего 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); |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
структура | _dmk | Общие вопросы C/C++ | 0 | 25.12.2011 14:56 |
Структура С++ | Defender42 | Помощь студентам | 9 | 09.04.2011 12:45 |
Структура | DRELORD | Помощь студентам | 0 | 16.05.2010 22:53 |
Структура | Superlotles | Помощь студентам | 5 | 14.09.2009 23:29 |
структура | cr1mson | Общие вопросы C/C++ | 3 | 14.01.2009 18:08 |