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;
}