|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - программа, обрабатывающая оценки судей в спортивных состязаниях |
|
C/C++ - программа, обрабатывающая оценки судей в спортивных состязаниях
|
Новый участник Сообщения: 5 |
В некоторых видах спортивных состязаний выступление каждого спортсмена оценивается несколькими судьями(в моем случае 5 судей),затем из всей совокупности оценок удаляются наиболее высокая и наиболее низкая,а для оставшихся оценок вычисляется среднее арифметическое,которое и идет в зачет спортсмену.Если наиболее высокую оценку выставило несколько судей,то удаляется только 1 такая оценка,аналогично и с наиболее низкими.
Программа выдает несколько ошибок,а точнее 5. Пожалуйста,помогите мне. #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> int i; struct a { char fio[25]; char oc[5]; }; struct in { char oc[5];}; int max,min,imax[20],imin[20],p,j,k=0; float sum[20]; FILE *f; void input () { clrscr(); char s; a sp; f = fopen ("sp.txt", "rb+"); if (f) { do { fflush (stdin); printf ("\n1 - Создать файл заново\n"); printf ("2 - Добавить данные в существующий файл\n"); printf ("3 - Отказаться от ввода*\n"); printf ("\n"); s = getchar(); if (s == '1') f = fopen ("sp.txt", "wb+"); else if (s == '2') {f = fopen ("sp.txt", "ab+"); {while(!feof(f)) {fread(&sp[k],sizeof(a),1,f); //Cannot convert 'a' to 'int' k++;} Invalid indirection k--;} while (s != '1' && s != '2' && s != '3'); } else f = fopen ("sp.txt", "wb+"); if (s != '3') { do { fflush (stdin); clrscr(); printf ("Введите данные о спортсменах\n"); printf ("\nФамилия:\n"); gets (sp.fio); i=1; printf ("\nОценки:\n"); for(j=0;j<5;j++) scanf("%s",sp.oc[j]); fflush (stdin); fwrite (&sp, sizeof(sp), 1, f); k++; printf ("\nПродолжить ввод? [д/н*]\n"); fflush (stdin); s = getchar(); } while (s == 'д'|| s == 'Д'); fclose (f); } } void osn () //do statement must have while { clrscr(); f = fopen ("sp.txt", "rb"); in sp; for(j=0;j<k;j++) {max=0;min=50;sum[j]=0; for(i=0;i<5;i++) {if(sp[j].oc[i]>max) {max=sp[j].oc[i]; imax[j]=i; } if(sp[j].oc[i]<min) {min=sp[j].oc[i]; imin[j]=i; } sum[j]+=sp[j].oc[i]; } sum[j]=(sum[j]-sp[j].oc[imax]-sp[j].oc[imin])/3; } close (f); } void cht () { clrscr(); f = fopen ("sp.txt", "rb"); a sp; float sum[20]; int j; printf("--------------- Таблица спортсменов ---------------"); while (feof(f)==0) { if (fread(&sp,sizeof(sp),1,f)) printf("\n %d %s %f ",i,sp.fio,sum[j]); } printf("\n---------------------------------------------------------"); getch(); fclose (f); } void edit () { clrscr(); char s; char txt [25]; a sp; f = fopen ("sp.txt", "ab+"); if (f) do { clrscr (); printf ("Введите фамилию спортсмена для редактирования данных\n"); fflush (stdin); gets (txt); rewind (f); clrscr(); while (fread (&sp, sizeof(sp), 1, f)) if (strcmp (txt, sp.fio) == 0) { printf ("Введите новые данные спортсмена**\n"); printf ("\nФамилия:\n"); gets (sp.fio); fflush (stdin); printf ("\nОценки:\n"); for(j=0;j<5;j++) scanf("%s",sp.oc[j]); fflush (stdin); fwrite (&sp, sizeof(sp), 1, f); } printf ("\nПродолжить редактирование? [д/н*]\n"); fflush (stdin); s = getchar(); } while (s == 'д'|| s == 'Д'); else { printf ("Файл не существует! Нажмите любую клавишу\n"); getch(); } fclose (f); } void main () { clrscr(); char s; do { clrscr(); printf ("Выберите действие:\n"); printf ("\n1 - Ввод данных\n"); printf ("2 - Редактировать данные\n"); printf ("3 - Прочесть файл\n"); printf ("4 -Выход\n"); printf ("\n"); s = getchar(); switch (s) { case '1': input (); break; case '2': edit (); break; case '3': cht (); break; } } while (s != '4'); getch (); } //Пишет что пропущена пара скобок |
|
Отправлено: 19:23, 29-05-2012 |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать Цитата makson41k@vk:
|
|
------- Отправлено: 14:29, 30-05-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 5
|
Профиль | Сайт | Отправить PM | Цитировать Borland C++
|
Отправлено: 14:41, 30-05-2012 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочее - Предложите критерии оценки работоспособности канала Интернет | Tonny_Bennet | Сетевые технологии | 2 | 09-12-2011 15:02 | |
CMD/BAT - [решено] Запуск Оценки Пройзводительности Windows 7 | RealBoy | Скриптовые языки администрирования Windows | 2 | 14-09-2011 16:25 | |
Electronic Arts введет плату за сетевой режим игры в своих спортивных симуляторах | OSZone News | Новости информационных технологий | 0 | 12-05-2010 20:30 | |
Офис и Текст - Ограничения оценки. Например обслуживание компании | united | Программное обеспечение Windows | 1 | 24-10-2008 12:38 | |
Программа для спортивных праздников | Fuzzy_Logic | Программное обеспечение Windows | 6 | 30-01-2005 10:44 |
|