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

Описать структуру с именем STUDENT - C++

Восстановить пароль Регистрация
 
katarisha
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 2
23.12.2013, 11:43     Описать структуру с именем STUDENT #1
1. Описать структуру с именем STUDENT, содержащую следующие поля:
фамилия и инициалы;
номер группы;
успеваемость (массив из пяти элементов).
2. Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по алфавиту;
вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 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
#include <cstdlib>
#include <iostream>
#include <string.h>
#define n 3
 
using namespace std;
 
struct Student
{
    char f[10];
    int gr;
    int o[5];
}
 
int main (int argc, char *argv[])
{
    int i,j, nmin, otv;
    char tt[10];
    struct Student m[n], vr;
 
    for (i=0;i<n;i++)
    {
        printf("\nNum %d", i+1);
        printf("\nF I O "); scanf("%s", &m[i].f);
        printf("\nGruppa "); scanf("%d", &m[i].gr);
        for (j=0;j<5;j++)
        { printf("\nOtmetka %d -> ",j+1); scanf("%d",&m[i].o[j]);}
    }
    for(i=0;i<n-1;i++)
    {
        nmin=1;
        for(j=i+1;j<n;j++)
            if(m[j].f[0]<m[nmin].f[0]) nmin=j;
        vr=m[i]; m[i]=m[nmin]; m[nmin]=vr;
    }
    printf(" F.I.O.    GRUPPA  01   02   03  04  05");
    for(i=0;i<n;i++)
    {
        printf("\n %10s     %3d   ", m[i].f, m[i].gr);
        for(j=0;j<5;j++)
            printf("  2%d  ", m[i].o[j]);
    }
    printf("\nNeusp\n");
    nmin=0;
    for(i=0;i<n;i++)
    {
        otv=0;
        for(j=0;j<5;j++)
            if(m[i].o[j]==2) otv=1;
        if (otv==1)
        { printf("%10s     %2d\n"    ,m[i].f,m[i].gr);
        nmin++; }
    }
    if(nmin==0) printf("\n Takie studenty otsutstvujt\n");
    system("PAUSE");
    return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2013, 11:43     Описать структуру с именем STUDENT
Посмотрите здесь:

Описать структуру с именем STUDENT C++
Описать структуру с именем STUDENT C++
Описать структуру с именем STUDENT C++
Описать структуру с именем STUDENT C++
C++ Описать структуру с именем STUDENT
C++ Описать структуру с именем STUDENT
C++ Описать структуру с именем STUDENT
Описать структуру с именем Student C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ShadowFirst
54 / 47 / 1
Регистрация: 31.10.2013
Сообщений: 161
23.12.2013, 12:31     Описать структуру с именем STUDENT #2
Не работает вы подразумеваете выводит не те значения во время работы или завершается аварийно, или вообще не компилируется?
Splintercheg
2 / 2 / 1
Регистрация: 23.12.2013
Сообщений: 26
23.12.2013, 12:39     Описать структуру с именем STUDENT #3
Цитата Сообщение от katarisha Посмотреть сообщение
1. Описать структуру с именем STUDENT, содержащую следующие поля:
фамилия и инициалы;
номер группы;
успеваемость (массив из пяти элементов).
2. Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по алфавиту;
вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 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
#include <cstdlib>
#include <iostream>
#include <string.h>
#define n 3
 
using namespace std;
 
struct Student
{
    char f[10];
    int gr;
    int o[5];
}
 
int main (int argc, char *argv[])
{
    int i,j, nmin, otv;
    char tt[10];
    struct Student m[n], vr;
 
    for (i=0;i<n;i++)
    {
        printf("\nNum %d", i+1);
        printf("\nF I O "); scanf("%s", &m[i].f);
        printf("\nGruppa "); scanf("%d", &m[i].gr);
        for (j=0;j<5;j++)
        { printf("\nOtmetka %d -> ",j+1); scanf("%d",&m[i].o[j]);}
    }
    for(i=0;i<n-1;i++)
    {
        nmin=1;
        for(j=i+1;j<n;j++)
            if(m[j].f[0]<m[nmin].f[0]) nmin=j;
        vr=m[i]; m[i]=m[nmin]; m[nmin]=vr;
    }
    printf(" F.I.O.    GRUPPA  01   02   03  04  05");
    for(i=0;i<n;i++)
    {
        printf("\n %10s     %3d   ", m[i].f, m[i].gr);
        for(j=0;j<5;j++)
            printf("  2%d  ", m[i].o[j]);
    }
    printf("\nNeusp\n");
    nmin=0;
    for(i=0;i<n;i++)
    {
        otv=0;
        for(j=0;j<5;j++)
            if(m[i].o[j]==2) otv=1;
        if (otv==1)
        { printf("%10s     %2d\n"    ,m[i].f,m[i].gr);
        nmin++; }
    }
    if(nmin==0) printf("\n Takie studenty otsutstvujt\n");
    system("PAUSE");
    return EXIT_SUCCESS;
}
После описания структуры точку с запятой забыл. И если вместо define n 3, в теле просто объявить const int n = 3. То программа работает как надо. Правда тебе нужно отображение в консоли поправить.
Yandex
Объявления
23.12.2013, 12:39     Описать структуру с именем STUDENT
Ответ Создать тему
Опции темы

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