Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/10: Рейтинг темы: голосов - 10, средняя оценка - 4.50
smthelse
1 / 1 / 1
Регистрация: 07.01.2012
Сообщений: 54
1

Упорядочить список студентов по среднему баллу и вывести весь список

19.01.2012, 10:43. Просмотров 1848. Ответов 2
Метки нет (Все метки)

форумчане,выдает ошибку столько маюсь с задачей уже
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
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
/*Упорядочить список студентов по среднему баллу
и вывести весь список*/
//---------------------------------------------------------------------------
#pragma argsused
 
 const int N=4; // count students
   int todays_day;
    int todays_month;
    int todays_year;
struct stud {
    char name[15];
    char name2[15];
    int dayborn;
    int month;
    int yearborn;
    char group[10];
    int subject;
    int ball[5];
    float SredBall;
 
    }
    s[N], tmp;
 
  int main(int argc, char* argv[])
{printf("Vvedite datu \n");
scanf("%d", todays_day);
scanf("%d", todays_month);
scanf("%d", todays_year);
int i, j, k, m;
for (i=0;i<N;i++)
{
    printf("Enter first name of %dst student ", i+1);
    scanf("%15s", &s[i].name);
    printf("Enter second name ");
    scanf("%15s", &s[i].name2);
    printf("Enter day of borning ");
    scanf("%10d", &s[i].dayborn);
    printf("Enter month of borning ");
    scanf("%10d", &s[i].month);
    printf("Enter year of borning ");
    scanf("%10d", &s[i].yearborn);
    printf("Enter its group ");
    scanf("%10s", &s[i].group);
    printf("Vvedite kolichestvo predmetov ");
    scanf("%1d", &m);
    s[i].subject=m;
    for (j=0;j<m;j++)
    {
        printf("Enter its ball for %dst predmet ", j+1);
        scanf("%3d", &s[i].ball[j]);
    }
}
 
for (i=0; i<N; i++){
    int sum=0;
    for (j=0; j<s[i].subject; j++){
        sum=sum+s[i].ball[j];
    }
    s[i].SredBall=(float)sum/s[i].subject;
    }
for (i=0; i<N; i++)
for (j=i+1; j<N; j++)
        if (s[i].SredBall<s[j].SredBall)
        {tmp=s[i];
        s[i]=s[j];
        s[j]=tmp;}
 
printf("%-26s %-13s %-8s %s","Name", "Date", "group", "SredBall\n");
for (i=0; i<N; i++)
    printf("%-10s %-15s %02d.%02d.%-7d %-8s %.2f\n", s[i].name, s[i].name2, s[i].dayborn, s[i].month, s[i].yearborn, s[i].group, s[i].SredBall);
printf("Spisok studentov na %02d.%02d.%d", todays_day, todays_month, todays_year);
getchar(); getchar();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2012, 10:43
Ответы с готовыми решениями:

Составить программу, которая корректирует список и сортирует его либо по среднему баллу
Список студенческой группы записан на диске как текстовый файл. Каждая строка...

Сортировка списка студентов по среднему баллу
Дан список студентов. Необходимо отсортировать студенток по среднему баллу и...

Упорядочить массив по среднему баллу
вот прога уже собственно готова но как упорядочить по среднему балу? #include...

Описать структуру STUDENT, упорядочить по среднему баллу
Помогите, пожалуйста. Как отсортировать по среднему баллу? Пробовал по разному,...

Упорядочить список студентов по возрасту
Ребята help с решением , не понимаю как решать,вот собственно задача: Дан...

2
lemegeton
2934 / 1363 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
19.01.2012, 12:14 2
Компилятор же сразу предупреждает...
Может так?
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
#include <stdio.h>
 
 const int N=4; // count students
   int todays_day;
        int todays_month;
        int todays_year;
struct stud {
        char name[15];
        char name2[15];
        int dayborn;
        int month;
        int yearborn;
        char group[10];
        int subject;
        int ball[5];
        float SredBall;
 
        }
        s[N], tmp;
 
  int main(int argc, char* argv[])
{printf("Vvedite datu \n");
scanf("%d", &todays_day);
scanf("%d", &todays_month);
scanf("%d", &todays_year);
int i, j, k, m;
for (i=0;i<N;i++)
{
        printf("Enter first name of %dst student ", i+1);
        scanf("%15s", s[i].name);
        printf("Enter second name ");
        scanf("%15s", s[i].name2);
        printf("Enter day of borning ");
        scanf("%10d", &s[i].dayborn);
        printf("Enter month of borning ");
        scanf("%10d", &s[i].month);
        printf("Enter year of borning ");
        scanf("%10d", &s[i].yearborn);
        printf("Enter its group ");
        scanf("%10s", s[i].group);
        printf("Vvedite kolichestvo predmetov ");
        scanf("%1d", &m);
        s[i].subject=m;
        for (j=0;j<m;j++)
        {
                printf("Enter its ball for %dst predmet ", j+1);
                scanf("%3d", &s[i].ball[j]);
        }
}
 
for (i=0; i<N; i++){
        int sum=0;
        for (j=0; j<s[i].subject; j++){
                sum=sum+s[i].ball[j];
        }
        s[i].SredBall=(float)sum/s[i].subject;
        }
for (i=0; i<N; i++)
for (j=i+1; j<N; j++)
                if (s[i].SredBall<s[j].SredBall)
                {tmp=s[i];
                s[i]=s[j];
                s[j]=tmp;}
 
printf("%-26s %-13s %-8s %s","Name", "Date", "group", "SredBall\n");
for (i=0; i<N; i++)
        printf("%-10s %-15s %02d.%02d.%-7d %-8s %.2f\n", s[i].name, s[i].name2, s[i].dayborn, s[i].month, s[i].yearborn, s[i].group, s[i].SredBall);
printf("Spisok studentov na %02d.%02d.%d", todays_day, todays_month, todays_year);
getchar(); getchar();
        return 0;
}
0
smthelse
1 / 1 / 1
Регистрация: 07.01.2012
Сообщений: 54
19.01.2012, 16:28  [ТС] 3
ошибка исправлена,кое-что удалено. теперь надо вывести еще одну таблицу,типа 2 в 1.
условие: "вывести анкетные данные студентов,получивших по предмету физика оценку "неудовлетворительно". т.е сначала список студентов,потом упорядочить по среднему баллу(1 таблица) + студенты с НЕУД(2 табличка). без второго условия все хорошо работало,а после вставки опять проблемы
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
/*Упорядочить список студентов по среднему баллу
и вывести весь список*/
//---------------------------------------------------------------------------
#pragma argsused
 
 const int N=4; // count students
 
struct stud {
    char name[15];
    char name2[15];
    int dayborn;
    int month;
    int yearborn;
    char group[10];
    int ball[5];
    float SredBall;
    int   physicsBall;
    int CountEx;
};
    s[N], tmp;
 
  int main(int argc, char* argv[])
{
int i, j, k, m;
for (i=0;i<N;i++)
{
    printf("Enter first name of %dst student ", i+1);
    scanf("%15s", &s[i].name);
    printf("Enter second name ");
    scanf("%15s", &s[i].name2);
    printf("Enter day of borning ");
    scanf("%10d", &s[i].dayborn);
    printf("Enter month of borning ");
    scanf("%10d", &s[i].month);
    printf("Enter year of borning ");
    scanf("%10d", &s[i].yearborn);
    printf("Enter its group ");
    scanf("%10s", &s[i].group);
    printf("Vvedite kolichestvo predmetov ");
    scanf("%1d", &m);
    for (j=0;j<m;j++)
    {
        printf("Enter its ball for %dst predmet ", j+1);
        scanf("%3d", &s[i].ball[j]);
    }
}
 
for (i=0; i<N; i++){
    int sum=0;
    for (j=0; j<m; j++)
    {
        sum=sum+s[i].ball[j];
    }
    s[i].SredBall=(float)sum/m;
    }
for (i=0; i<N; i++)
for (j=i+1; j<N; j++)
        if (s[i].SredBall<s[j].SredBall)
        {tmp=s[i];
        s[i]=s[j];
        s[j]=tmp;}
 
printf("%-26s %-13s %-8s %s","Name", "Date", "group", "SredBall\n");
for (i=0; i<N; i++)
    printf("%-10s %-15s %02d.%02d.%-7d %-8s %.2f\n", s[i].name, s[i].name2, s[i].dayborn, s[i].month, s[i].yearborn, s[i].group, s[i].SredBall);
 
 
 
int k,i,j;
k=0;
for(i=0;i<n;i++)
{ printf("Enter quantity of exams\n");
scanf("%d",&s[i].CountEx);
getchar();
 
printf("Enter his ball on physics\n");
scanf("%d",&s[i].physics_ball);
 
printf("Enter his balls on other subjects\n");
for(j=0;j<s[i].CountEx-1;j++)
    {
    printf("Enter his %d-st ball\n",j+1);
    scanf("%d",&s[i].ball[j]);
}
}
int r=0;
while(r<40)
    {printf("\n");
        r++;}
printf("%-26s %-13s %-8s %s" ,"Name", "Date", "Ball on physics", "Other balls\n");
for (i=0; i<N; i++)
printf("%-10s %-15s %02d.%02d.%-7d %-8s %.2f\n",s[i].name, s[i].name2, s[i].dayborn, s[i].month, s[i].yearborn, s[i].group, s[i].physics_ball);
 printf("\n");
printf("Students whose ball on physics is hasn't handed over:");
for(i=0;i<n;i++)
    if(s[i].physics_ball<3)
 printf("%-8s%-12s",s[i].name,s[i].name2);
    else k+=1;
        if(k==n)
        printf(" None");
getchar(); getchar();
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2012, 16:28

Упорядочить список студентов по году рождению
Язык Си Дан файл, содержащий сведение о студентах, включающие в себя его...

Упорядочить список студентов по возрастанию среднего балла
Имеется код, необходимо упорядочить список студентов по возрастанию среднего...

Упорядочить список студентов по году рождения и распечатать его
Здравствуйте помогите написать программу. На диске имеется файл данных...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru