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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2009, 09:33   #1
STS_1991
Пользователь
 
Регистрация: 18.02.2009
Сообщений: 13
По умолчанию Структуры. Сортировка по фамилии студента.

Я не знаю как сделать сортировку по фамилии.Если не трудно напишите пожалуйста.Вот задача:
1. Описать структуру с именем STUDENT, содержащую следующие поля:
• фамилия и инициалы;
• помер группы;
успеваемость (массив из пяти элементов).
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из десяти структур типа
STUDENT; записи должны быть упорядочены по алфавиту; вывод на дисплей фамилий и номеров групп для всех студентов, имеющих
хотя бы одну оценку 2;
• если таких студентов нет, вывести соответствующее сообщение.

Вот код без сортировки:

#include <stdio.h>
#include <conio.h>

struct Student
{
int name[15];
int group;
int ocenki[5];
};


main()
{

Student array[10],x;
int i, j, N[10],k,k2,l;
float m;
for(i=0; i<10; i++)
{
printf ("\n\nEnter the student name... ");
scanf ("%s",&array[i].name);
printf ("\nEnter the number of his group... ");
scanf ("%d",&array[i].group);
for(j=0; j<5; j++)
{
printf ("\nEnter the %d mark... ",j+1);
scanf ("%d",&array[i].ocenki[j]);
}
}
k2=0;
for (i=0; i<=10; i++)
{
k=0;
for (j=1; j<=5; j++)
if (array[i].ocenki[j]==2)
{
if (k!=1){
printf ( "\n This student has mark 2 %s, %d \n" , array[i].name , array[i].group);;
k=1;
k2++;}
}
}

if (k2==0) printf ("HET DVOEK");

getch();

}
STS_1991 вне форума Ответить с цитированием
Старый 09.05.2009, 11:23   #2
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Код:
for (i=0; i<=9; i++)
  {
  if (a[i] > a[i+1])
    {
      c=a[i];
      a[i]=a[i+1];
      a[i+1]:=c;
      }
   }
Вот сортировка по возрастанию
S@fer вне форума Ответить с цитированием
Старый 09.05.2009, 12:09   #3
STS_1991
Пользователь
 
Регистрация: 18.02.2009
Сообщений: 13
По умолчанию

Помоему таким способом только цифры сортируются...
STS_1991 вне форума Ответить с цитированием
Старый 09.05.2009, 12:14   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Я бы не стал сортировать сами структуры, можно сортировать специальный список от 1 до 10 (индексы студентов в массиве) по именам твоих студентов. А затем выводил бы данные в соответствии с данным списком.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при вводе в edut фамилии человека из 35 группы 1ая кнопка теста становилась видимая asd178 БД в Delphi 2 29.04.2009 14:07
сортировать по фамилии два листа Kotik123 Microsoft Office Excel 2 23.04.2009 18:52
С днём студента! Greblin Свободное общение 5 26.01.2009 02:24
Упорядочить данные по фамилии автора-PASCAL Newnata Помощь студентам 2 20.11.2007 16:59