Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
smthelse
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 51
19.01.2012, 10:43     Упорядочить список студентов по среднему баллу и вывести весь список #1
форумчане,выдает ошибку столько маюсь с задачей уже
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2012, 10:43     Упорядочить список студентов по среднему баллу и вывести весь список
Посмотрите здесь:

Упорядочить список студентов по году рождению C++
Вывести список студентов по возрастанию оценок по математике. C++
C++ Сформировать список из вещественных чисел. Упорядочить список по возрастанию.
Вывести на экран фамилии и имена трех худших по среднему баллу учеников C++
Составить программу, которая корректирует список и сортирует его либо по среднему баллу C++
C++ Упорядочить список студентов по году рождения и распечатать его
Вывести список студентов, имеющих положительные оценки C++
Упорядочить список студентов по возрастанию среднего балла C++
Вывести список студентов, имеющих только двойки C++
C++ Упорядочить массив по среднему баллу
Сортировка списка студентов по среднему баллу C++
Описать структуру STUDENT, упорядочить по среднему баллу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2913 / 1342 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
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;
}
smthelse
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 51
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;
}
Yandex
Объявления
19.01.2012, 16:28     Упорядочить список студентов по среднему баллу и вывести весь список
Ответ Создать тему
Опции темы

Текущее время: 10:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru