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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.05.2010, 16:32   #1
Leshiy1
Форумчанин
 
Аватар для Leshiy1
 
Регистрация: 24.09.2009
Сообщений: 104
По умолчанию Непонятно_Т

Здравствуйте всем.
Задача такая:
(Освоить структуры в языке С с обязяательным применением функций. Исходные данные или результат или и то идругое должно размежаться в текстовом файле)
Создать список студентов с оценками по нескольким дисциплинам. Отсортировать список по убыванию среднего балла. Имеющих двойки удалить из списка.
Код:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct person{
char fam[100], imot[100];
int n[3];
};
int Sort(struct person*,int);
int main(void) {
textcolor(13);
printf("                            Spisok Studentov\n\n");
printf("   Students           Fizika        Sopromat        Biologiya\n\n");
FILE*file=fopen("D:\\bc31\\bin\\students.txt","r");
struct person students[10];
int i;
fscanf(file,"%*s%*s%*s%*s");
for (i=0; i<7; i++) {
fscanf(file,"%s %s %d %d %d",
       students[i].fam, students[i].imot,
       students[i].n+0, students[i].n+1, students[i].n+2);}
       for (i=0; i<7; i++) {
printf("%s %s           %d              %d                %d" "\n",
       students[i].fam,  students[i].imot,
       students[i].n[0],  students[i].n[1], students[i].n[2]
       ); }

int delnum,ns;
ns=7;
printf("Unsorted:" "\n");
for (i=0; i<ns; i++)
printf("%10s %10s : %d %d %d" "\n",
   students[i].fam,
   students[i].imot,
   students[i].n[0],
   students[i].n[1],
   students[i].n[2] );
Sort(students,ns);
putchar('\n');
printf("Sorted:" "\n");
for (i=0; i<ns; i++)
printf("%10s %10s: %d %d %d" "\n",
  students[i].fam,
  students[i].imot,
  students[i].n[0],
  students[i].n[1],
  students[i].n[2] );
delnum=0;
for (i=0; i<ns; i++)
 if (((students[i].n[0]+students[i].n[0]+students[i].n[0])/3.0)<3)
    delnum++;
 ns-=delnum;
putchar('\n');
printf("Sorted, Deleted:" "\n");
for (i=0; i<ns; i++)
printf("%10s %10s : %d %d %d" "\n",
  students[i].fam,
  students[i].imot,
  students[i].n[0],
  students[i].n[1],
  students[i].n[2] );
int Sort(struct person*students, int ns)
{
  int i,j;
  struct person tmp;
  for (i=0; i<ns-1; i++)
    for (j=i+1; j<ns; j++)
    if
    (
     ((students[i].n[0]+students[i].n[0]+students[i].n[0])/3.0) <
     ((students[j].n[0]+students[j].n[0]+students[j].n[0])/3.0)
    )
    {  tmp=students[i];
       students[i]=students[j];
       students[j]=tmp;
    }
  return 0;
  }
clrscr();
getchar();
}
Тут не могу понять какая ошибка в фунукции

int Sort(struct person*students, int ns)
{
Вот в этой строчке пишет declaration syntax error(там где фигурная скобка)
Изображения
Тип файла: jpg Безымянный6.JPG (58.9 Кб, 56 просмотров)
Leshiy1 вне форума
Старый 16.05.2010, 16:34   #2
Leshiy1
Форумчанин
 
Аватар для Leshiy1
 
Регистрация: 24.09.2009
Сообщений: 104
По умолчанию

Вот текстовый файл откуда берутся данные и превращаются в структуру
Изображения
Тип файла: jpg Безымянный3.JPG (18.2 Кб, 57 просмотров)
Leshiy1 вне форума
Старый 16.05.2010, 16:38   #3
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Ужасное форматирование.
Нельзя определять одну ф-цию внутри другой, ф-ция sort определена у вас в ф-ции main. Стоит вынести её за пределы main. )
netrino вне форума
Закрытая тема


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