Вопрос № 180342: День добрый, уважаемые эксперты, нуждаюсь в помощи со следующей программой: Компилятор Code blocks идеально, Borland в крайнем случае, Итак, на ввод идут фамилии, не меньше 4, пол, местожительство и 4 оценки. Первый вывод должен быть в виде та...
Вопрос № 180342:
День добрый, уважаемые эксперты, нуждаюсь в помощи со следующей программой: Компилятор Code blocks идеально, Borland в крайнем случае, Итак, на ввод идут фамилии, не меньше 4, пол, местожительство и 4 оценки. Первый вывод должен быть в виде таблицы с введенными данными. Далее должен быть вывод студенток, проживающих в СПб. И 3 вывод-сортировка 2 вывода по возрастанию среднего балла.
/* Бесплатная консультация онлайн № 180342 */ /* Итак, на ввод идут фамилии, не меньше 4, пол, местожительство и 4 оценки. Первый вывод должен
быть в виде таблицы с введенными данными. Далее должен быть вывод студенток, проживающих в СПб. И 3 вывод-сортировка 2 вывода по возрастанию среднего балла. */
typedef struct { int year; int month; int day; } Born;
typedef struct student { char FIO[20]; char Gender[2]; Born b; char City[30]; int Balls[MAX_BALLS]; } Student;
void Print_Group(Student MyMas[], int quant); void Izm_Group(Student MyMas[], Student MyMas1[], int quant, int *quant1); void Sort_Group(Student MyMas[], int quant); int main() { int i; int j; int n1; /* количество студенток из СПб */
Student GROUP[SIZE], GROUP1[SIZE];
/* Ввод данных */ for ( i = 0; i<SIZE; i++) { printf("\nФИО : "); scanf("%s",
GROUP[i].FIO);
void Izm_Group(Student MyMas[], Student MyMas1[], int quant, int *quant1) { /* Формирование массива студенток, проживающих в СПб. */ int i; int j; for(i=0, *quant1=0; i<quant; i++) if((strcmp(MyMas[i].Gender,"f")==0)&&(strcmp(MyMas[i].City,"SPb")==0)) { MyMas1[(*quant1)++]=MyMas[i];
} }
void Sort_Group(Student MyMas[],int quant) { // Вместо того, чтобы сравнивать средний балл при одинаковом числе оценок, // достаточно сравнить сумму баллов int i, j, k, k1; int sum, sum1; Student buf; for(i=1; i<quant;i++) for(j=quant-1; j>=i;j--) // Эту часть можно улучшить, так как // каждая сумма внутри этого цикла, кроме "крайних&q
uot; // считается дважды { for (k=0, sum=0; k<MAX_BALLS; k++) sum+=MyMas[j].Bal
ls[k];
for (k1=0, sum1=0; k1<MAX_BALLS; k1++) sum1+=MyMas[j-1].Balls[k1];
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.