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

Сведения о студентах: выводится не вся информация

18.01.2016, 17:21. Показов 563. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, пожалуйста в чем ошибка. мне необходимо на экран выдать информацию о студенте. фамилию, группу, оценки за 3 экзамена, 3 зачета/незачета. У меня выдает фамилию и группу, а экзамены и зачеты не выдает за место них появляется просто набор чисел например ПОПОВ группа 1 а дальше 24545676598. что то типа того. в чем ошибка?
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
void PrintList() 
 
{int i;
    printf("%-10s","Surname");
    printf("%-10s","Group");
    printf("%-10s","Exams");
    printf("%-10s","Setoff\n");
    struct obj *p = head;
    while (p != NULL)
    { 
        printf("\n");
        printf("%-10s", (p->S).Name);
        printf("%-10d", (p->S).Group);
        for (  i = 0; i < 3; i++)
            printf("%-2d", (p->S).exam[i]);
        for (  i = 0; i < 3; i++)
            printf("%-2c", (p->S).pass[i]);
        p = p->next;
    }
    printf("\n");
}
 
 
 
#include <stdio.h>
#include <stdlib.h>
struct student
{
    char *Name;
    int Group;
    int exam[3];
    char pass[3];
};
 
struct obj
{
    struct student S;
    struct obj *next;
    struct obj *prev;
};
struct obj* add_obj(char* Name,int Group, int exam, char pass);
void del_obj(char* Namedel); 
void PrintList();
void Input();
void PrintNames();
void PrintBall(int X);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2016, 17:21
Ответы с готовыми решениями:

Структура.Не выводится информация о студентах конкретной группы
Дана структура из 5ти студентов. Вводятся их...

Сформировать одномерный массив структур, содержащий сведения о студентах
Сформировать одномерный массив структур, содержащий сведения о студентах и результатах сессии для...

Записать в другой файл сведения только о тех студентах, которые успешно сдали сессию
Создать файл, содержащий сведения о студентах: фамилия И. О., группа, оценки за экзамен. Написать...

Не выводится информация в файл
Всем доброго времени суток. У меня небольшая просьба,помогите оприделтить наличие ошибок...

4
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
18.01.2016, 17:31 2
А запись в список хоть правильная? Ты проверял?
0
0 / 0 / 0
Регистрация: 27.12.2014
Сообщений: 36
18.01.2016, 17:36  [ТС] 3
я девочка) Всмысле запись в список? не понимаю вопроса. я добавляю элементы все хорошо добавляется.наживаю показать список. а он фамилии и группы вывод а экзамены и зачеты абракадабра какаято(((
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
18.01.2016, 17:38 4
Anna16, попробуйте латиницей все набирать.

+ нужен полный код, желательно в минимально компилируемом варианте для воспроизведения ошибки.
0
0 / 0 / 0
Регистрация: 27.12.2014
Сообщений: 36
18.01.2016, 17:42  [ТС] 5
МЭИН
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
#include <stdio.h>
#include <stdlib.h>
#include "list.h"
 
int main()
{       int x;
        struct  student S;
        int p;
        char c='y';
        while(c=='y'||c=='Y')
        {
        
    
    
        system("cls");
        
        printf("1 Add new element\n");
        printf("2 Delete element\n");
        printf("3 View the list\n");
        printf("4 Print a list of underachieving students \n");
        printf("5 Calculate the average score\n");
        scanf("%d", &p);
        switch (p)
        {
        case 1: {
            Input();
            printf("Element added.\n");}
            break;
            
        
        case 2: {char* Namedel;
        printf("Input surname \n");
        scanf("%s", S.Name);
        getchar();
        del_obj(Namedel);
        printf("Deleted.\n"); }
        break;
                
        case 3:
        PrintList();
        break;
        
        case 4:
            PrintNames();
            break;
            
        case 5: {
                system("cls");
                printf("Input number group \n");
                scanf("%d", &x);
                getchar();
                PrintBall(x); }     
            break;
            case 6:c='N';}
            if (c!='N'){printf("Continue? Yes(Y) or No(N)\n");
            scanf("%c",&c);}
            }
        
        }

ЛИСТ.с
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#include <stdio.h>
#include <stdlib.h>
#include "list.h"
 
struct obj *head = NULL, *tail = NULL;
 
struct obj* add_obj(char* Name,int Group, int exam, char pass) 
{ 
int i;
struct obj * current =(struct obj *)malloc(sizeof(struct obj)); 
current-> S.Name=Name;
current->S.Group=Group;
for (i = 0; i < 3; i++)
current-> S.exam[i]=exam;
for (i = 0; i < 3; i++)
current-> S.pass[i]=pass;
current->prev = tail; 
current->next = NULL; 
if(tail != NULL) tail->next = current; 
if(head == NULL) head = current; 
tail = current; 
return current; 
} 
 
 
 
void Input() // ââîä íîâîãî ýëåìåíòà ñ êëàâèàòóðû
{
    
    struct  student S ;
    int i;
    S.Name = 0;
    S.Group = 0;
    printf("Input Surname\n");
    S.Name = (char*)malloc(sizeof(char)* 20);
    scanf("%s", S.Name);
    getchar();
    printf("Input number group\n");
    scanf("%d", &(S.Group));
    getchar();
    for (i = 0; i < 3; i++)
    {
        printf("Input the estimate for %d exam\n", i+1);
        scanf("%d", &(S.exam[i]));
        getchar();
    }
    for (i = 0; i < 3; i++)
    {
        printf("Input the estimate for %d setoff\n", i+1);
        scanf("%s", &(S.pass[i]));
        getchar();
    }
    add_obj(S.Name,S.Group,S.exam[i], S.pass[i]);
}
 
 
 
 
void del_obj(char* Namedel) 
{
struct obj * current =(struct obj *)malloc(sizeof(struct obj)); 
current=head;
while (current!=NULL)
{
if (strcmp(Namedel,current->S.Name)==0)
    { 
if(current == head)  
if(current->prev != NULL) head = current->prev; 
else head = current->next; 
if(current == tail) 
if(current->next != NULL) tail = current->next; 
else tail = current->prev; 
if(current->prev != NULL) 
current->prev->next = current->next; 
if(current->next != NULL) 
current->next->prev = current->prev; 
free(current); 
    } 
current = current->next; 
}}
 
 
 
 
 
void PrintList() //ïå÷àòü ñïèñêà
 
{int i;
    printf("%-10s","Surname");
    printf("%-10s","Group");
    printf("%-10s","Exams");
    printf("%-10s","Setoff\n");
    struct obj *p = head;
    while (p != NULL)
    { 
        printf("\n");
        printf("%-10s", (p->S).Name);
        printf("%-10d", (p->S).Group);
        for (  i = 0; i < 3; i++)
            printf("%-2d", (p->S).exam[i]);
        for (  i = 0; i < 3; i++)
            printf("%-2c", (p->S).pass[i]);
        p = p->next;
    }
    printf("\n");
}
 
 
 
 
 
void PrintNames()// ïå÷àòü èíôîðìàöèè î íåóñïåâàþùèõ ñòóäåíòàõ
{
    
    struct obj *i = head;
    printf("%s", "Surname");
    printf("%s", "Group");
    printf("Kol-vo zadolznostei\n");
    while (i != NULL)
    {
        int j = 0;
        int n = 0;
        for (j = 0; j<3; j++)
        {
            if ((i->S).exam[j] == 2) n++;
            if ((i->S).pass[j] == 'n') n++;
        }
 
        
        if (n > 0)
        {
            printf("%s", (i->S).Name);
            printf("%d", (i->S).Group);
            printf("%d\n", n);
        }
        i = i->next;
    }
}
 
void PrintBall(int X) // ïå÷àòü ñðåäíåãî áàëëà ïî ãðóïïå x
{
    
    int s = 0;
    struct obj *i = head;
    float sr = 0;
    int n = 0;
    while (i != NULL)
    {
 
        if ((i->S).Group > X) break;
        if ((i->S).Group == X)
        {
            printf("%s", (i->S).Name);
            float s = 0;
            int j;
            for ( j = 0; j < 3; j++)
            {
                s = s + (i->S).exam[j];
            }
            s = s / 3;
            printf("%f\n", s);
            sr = sr + s;
            n++;
        }
        i = i->next;
    }
    printf("\nSredniy bal po groupe %d = ", X);
    if (n != 0)
    {
        sr = sr / n;
    }
    printf("%f\n", sr);
}
ЛИСТ.аш
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
struct student
{
    char *Name;
    int Group;
    int exam[3];
    char pass[3];
};
 
struct obj
{
    struct student S;
    struct obj *next;
    struct obj *prev;
};
struct obj* add_obj(char* Name,int Group, int exam, char pass);
void del_obj(char* Namedel); 
void PrintList();
void Input();
void PrintNames();
void PrintBall(int X);


У меня еще удаление не работает(((
0
18.01.2016, 17:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2016, 17:42
Помогаю со студенческими работами здесь

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

Работа с файлами - информация не выводится
Посмотрите, пожалуйста, код. Не могу понять, что тут неправильно. #include&lt;iostream&gt; #include...

Информация выводится дважды в цикле
for (i = 2; i&lt;=k; i++){ tv = i + var; second_element = sin(tv); // a for (j = 3; j...

При записи в файл и при чтении выводится не вся информация
не работает следующее, когда сохраняешь файл с данными, а потом загружаешь его то выводит не всю...


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

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