Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.05.2014
Сообщений: 10
1

Пузырьковая сортировка - не получается вывести результат на экран

31.05.2014, 18:08. Показов 813. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разработать программу, которая выводит на экран название предмета (возможно нескольких) для заданной группы по которому средний балл наименьший(это работает).
И список предметов в порядке убывания общего среднего балла по всем группам. А вот с этой частью задания не могу разобраться, пузырьковую сортировку вроде как сделал, а вывести на экран список предметов не могу.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <locale.h>
main (){
 
    char *subj[4]={{"Математика"},{"Физика"},{"Информатика"},{"История"}};
    double sb[4]={0,0,0,0};
struct svedene{
    char name[40];
    int group;
    int pred[4];
};
int j, i, n, p, studnum=0;
double min, buff;
struct svedene *A;
setlocale(LC_CTYPE, "rus");
printf ("Введите количество студентов: ");
scanf ("%d", &n);
A=(struct svedene*)malloc(n*sizeof(struct svedene));
 
for (i=0; i<n; i++){
 
    printf ("Студент %d:", i);
 
    printf ("\nВедите имя\n");
    scanf ("%s", &(A[i].name));
 
    printf ("Введите группу студента\n");
    scanf ("%d",  &(A[i].group));
    for (j=0;j<4;j++){
    printf("Введите оценку по предмету %s",subj[j]);
    scanf("%d",&(A[i].pred[j]));
    }
   
 
}
printf ("Введите группу\n");
scanf ("%d", &p);
 
for (i=0;i<n;i++)
    {
    if (A[i].group==p)
      {
          studnum++;
          for (j=0;j<4;j++)
              sb[j]+=A[i].pred[j];
        }
 
    }
 
 for (j=0;j<4;j++)
      sb[j]/=studnum;
min=sb[0];
 
for (j=1;j<4;j++)
if (sb[j]<min) min=sb[j];
printf ("Минимальный средний балл по предмету\n");
for  (j=0;j<4;j++) {
if (sb[j]==min)
    printf ("%s\n",subj[j]); 
}
 
//2 часть задания
for  (i=0; i<4; i++){
    for (j=0; j<3; j++){
        if (sb[j]>sb[j+1]){ 
            buff=sb[j];
            sb[j]=sb[j+1];
            sb[j+1]=buff;
        }
    }
}
 
for (j=0; j<4; j++)
    printf ("%s\n",subj[j]);
 
 
 
system ("pause");
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2014, 18:08
Ответы с готовыми решениями:

Найти значение выражения. Не получается вывести результат на экран
Добрый вечер! Помогите найти ошибку. Ассемблер изучаю всего несколько дней. Необходимо вычислить...

Объяснить результат и вывести на экран результат логического выражения
Объяснить результат и вывести на экран результат логического выражения T = S для заданных значений...

Сортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом ("пузырьковая" сортировка)
Создать класс, содержащий массив и реализующий алгоритмы сортировки и бинарного поиска в этом...

Не получается вывести результат функции F= 18*z*x*y-15*x*y*z+30+19*(x-y)=33
Здравствуйте товарищи програмисты) Собственно вот программа для вычисления: .model small...

3
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
31.05.2014, 18:25 2
ты сортируешь только массив sb, subj у тебя не меняется
0
0 / 0 / 0
Регистрация: 31.05.2014
Сообщений: 10
31.05.2014, 18:49  [ТС] 3
Точно. А как можно реализовать вывод списка предметов, через subj?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
31.05.2014, 18:57 4
Iges, тут есть несколько вариантов.
Например, можно создать структуру в которой будет название предмета и средний бал, и сортировать массив таких структур по среднему балу.
Либо вместе с элементами массива sb менять соответствующие элементы массива subj
0
31.05.2014, 18:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2014, 18:57
Помогаю со студенческими работами здесь

Не получается вывести результат на Listbox
Нужно создать приложение для расчета 10 значений функции. Результаты надо вывести на экран. Вот,...

Не получается вывести результат в консоль
Сижу делаю лабораторную в институт. Одно из заданий звучит так:необходимо прочитать из файла строку...

Не получается вывести результат в стринггрид
Начиная со строки 100 вылетает ошибка unit Unit1; //нахождения поздних сроков конца работ...

Не получается вывести результат функции GetVolumeInformation
#include &quot;stdafx.h&quot; #include &quot;windows.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru