Консультация № 155703
25.12.2008, 00:48
0.00 руб.
0 1 1
Уважаемые Эксперты!!Помогите решить:
1.Описать структуру с именем STUDENT ,содержащую следующие поля:
· NAME - фамилия и инициалы;
· GROUP -номер группы;
· SES - успеваемость (массив из пяти элементов).
2.Написать программу , выполняющую следующие действия:
· ввод с клавиатуры данных в массив STUD1,состоящий из десяти струк-
тур типа STUDENT;записи должны быть упорядочены по возрастанию
содержимого поля GROUP;
· вывод на дисплей фамилий и номеров групп для всех студентов , вклю-
ченных в массив , если средний балл студента больше 4,0;
· если таких студентов нет , вывести соответствующее сообщение.

Обсуждение

Неизвестный
25.12.2008, 12:23
общий
это ответ
Здравствуйте, Artful!
Вот простейший пример. Я надеюсь все понятно.
Удачи.

Приложение:
#include <stdio.h>
#include <string.h>
#include <conio.h>

struct STUDENT{
char NAME[30];
int GROUP;
int SES[5];
};

int main()
{
STUDENT STUD1[10];

//Заполняем
for (int i = 0; i<10; i++){
printf("\nStudent %i\nEnter name: ", i+1);
scanf("%s", STUD1[i].NAME);

printf("Enter group: ");
scanf("%i", &(STUD1[i].GROUP));

for (int j = 0; j<5; j++){
printf("Enter ses %i: ", j+1);
scanf("%i", &(STUD1[i].SES[j]));
}

}

//Сортируем
for (int i = 0; i<10; i++){
for (int j = i; j<10; j++){
if (STUD1[i].GROUP > STUD1[j].GROUP){
int tmpGroup = STUD1[i].GROUP;
char tmpName[30];
strcpy(tmpName, STUD1[i].NAME);
int tmpSes[5];
for (int k = 0; k<5; k++) tmpSes[k] = STUD1[i].SES[k];

STUD1[i].GROUP = STUD1[j].GROUP;
strcpy(STUD1[i].NAME, STUD1[j].NAME);
for (int k = 0; k<5; k++) STUD1[i].SES[k] = STUD1[j].SES[k];

STUD1[j].GROUP = tmpGroup;
strcpy(STUD1[j].NAME, tmpName);
for (int k = 0; k<5; k++) STUD1[j].SES[k] = tmpSes[k];
}


}
}

bool b = false;
for(int i =0; i < 10; i++){
double mid = 0;
for (int j = 0; j<5; j++) mid += STUD1[i].SES[j];
mid /= 5.0;
if (mid > 4.0){
printf("\nStudent %i\nName: %s\nGroup: %i", i, STUD1[i].NAME, STUD1[i].GROUP);
b = true;
}
}

if (b==false) printf("\nNet takih studentov");

getch();

return 0;
}
Форма ответа