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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2010, 18:36   #1
Jereme
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 51
По умолчанию структура STUDENT!

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




#include <iostream.h>;
#include <stdio.h>;
#include <string.h>;

struct STUDENT{
char familiya[15];
char gr[15];
int ysp;

} zapis[4];

void main()
{
for (int i=1;i<5;i++)
{
printf("Vvod dannix o %d cheloveke, najmite enter \n ", i);
cin;
printf("Vvedite familiya \n");
cin >> zapis[i].familiya;
printf("Vvedite № gryppbI \n");
cin >> zapis[i].gr;
printf("Vvedite yspevaemostb \n");
cin >> zapis[i].ysp;


}
char fam[15];

int i,j,m,min;
for (i=1;i<5;i++)
{
min=i;
for(j=i+1;j<n;j++)
if(mas[j].ysp[i]<mas[min].ysp[i]) min=j;
temp=mas[i];
mas[i]=mas[min];
mas[min]=temp;
}







else
{
cout << "Takix studentov net " << endl;
}
}
Mega HiP-Hop--- http://muzxclusive.com/
Jereme вне форума Ответить с цитированием
Старый 17.01.2010, 19:03   #2
Sapfil
Пользователь
 
Аватар для Sapfil
 
Регистрация: 11.01.2010
Сообщений: 24
По умолчанию

1. Что подразумевается в этой строке?:
Цитата:
} zapis[4];
- это 4 человека? А в задании вроде бы 10...

2. Даже если работать пока с четырьмя студентами (для простоты отладки программы), то цикл заполнения данных для каждого студента сделан неправильно. Это называется "Ошибка подсчета столбов для забора" . В вашем случае если вы объявляете такой массив из четырех элементов класса STUDENT, то вы получите такие элеманты:
STUDENT[0],
STUDENT[1],
STUDENT[2],
STUDENT[3].
Как видите - нумерация начинается с нуля, а не с единицы. По-этому у вас в последней итерации цикла
Цитата:
for (int i=1;i<5;i++)
- произойдет ошибка, потому что бы обратитесь к элементу STUDENT[4], а такого элемента у вас нет.

3. Дальше. В классе STUDENT вам по заданию надо определить массив из 5 элементов, а вы почему-то объявляете просто одну переменную:
Цитата:
int ysp;
4. Вот эта переменная n по-моему нигде не объявлена. Что она означает?
Цитата:
for(j=i+1;j<n;j++)
. Вообще кстати, этот кусок кода какой-то путанный. я так понял - это как раз определение хорошистов и отличников. Только вот здесь нет ни одного вывода фамилий таких студентов.

5. Пока еще не происходит никакого упорядочивания студентов по средней успеваимости. Скажите - когда это упорядочивание должно происходить? Прямо в момент ввода данных? Или же нужно сначала ввсети данные всех студентов, а потом упорядочить?
Sapfil вне форума Ответить с цитированием
Старый 17.01.2010, 19:19   #3
Jereme
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 51
По умолчанию

Сначало ввести а потом упорядочить!
Mega HiP-Hop--- http://muzxclusive.com/
Jereme вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++. Структура. bpystep Помощь студентам 12 24.11.2009 00:28
Структура Superlotles Помощь студентам 5 14.09.2009 23:29
структура Cpluser Общие вопросы C/C++ 4 16.06.2009 17:42
Структура IF в С++ lebrosha Помощь студентам 3 22.05.2009 00:09