Форум программистов, компьютерный форум, киберфорум
Наши страницы

Сформировать список студентов института - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести количество пробелов между словами в строке http://www.cyberforum.ru/cpp-beginners/thread19350.html
:help:Помогите с программой:пользователь вводит строчку,а программа выводит кол-во пробелов между словами в строке. #include "stdafx.h" #include <algorithm> #include <iostream> #include <string>...
C++ Не работает запись в файл Нужно сохранить данные в файл а при запуске проги выводится сообщение что файл не найден. Как прописать путь к файлу, если он лежит на диске С в виндовс XP? (На федоре работает) Вот кусок программы... http://www.cyberforum.ru/cpp-beginners/thread19348.html
C++ Посчитать к-во точек, попавших в круг с радиусом R и с центром в начале координат
Срочно нужна помощь в создании программы для C++Builder. Условие такое: Заданы координаты точек x1 y1 x2 y2 ... ... ...
C++ Написать программу, определяющую принадлежит ли точка части плоскости C(не C++)
Чуваки! Срочно помощь нужна, кто чем может. До пятницы надо успеть сдать лабораторки кое-какие... Незнаю как делать, точнее так себе... :wall: Вот задачи: ТЕМА: ОПЕРАТОРЫ УПРАВЛЕНИЯ. ...
C++ Набор действий с двоичным деревом http://www.cyberforum.ru/cpp-beginners/thread19339.html
задача заключается в том что бы написаиь программу реализующую набор действий с двоичным деревом а именно..ввод,вывод,добавление и удаление вершин,обход дерева....буду оч благодарен:rtfm:
C++ Распаковка 32 битного числа Реализовали такой алгоритм запаковки со всякими сдвигами. В файл пишется блоками по 17 байт, в которые зашито 8 32-битных чисел. int coder(long *ar(массив данных long, который пакуют),unsigned... подробнее

Показать сообщение отдельно
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.12.2008, 22:40
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MAXNAME    512
#define NSTUDENTS  3
 
enum {
    JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
};
 
typedef struct grpnode {
    char fcl[MAXNAME];
    unsigned grp;
    char fio[MAXNAME];
    char adr[MAXNAME];
    unsigned mnth;
    unsigned yr;
    struct grpnode *next;
} Student, *Studptr;
 
Studptr addstud(Studptr, Studptr), studalloc(void), freestud(Studptr);
 
/* формирует список студентов института, одна группа */
main()
{
    Studptr ourgrp = NULL, p;
    Student tmp;
    int i;
    
    for (i = 0; i < NSTUDENTS; i++) {
        printf("Enter\n");
        printf("faculty: ");
        scanf("%s", tmp.fcl);
        printf("group: ");
        scanf("%d", &tmp.grp);
        printf("initials: ");
        scanf(" %[^\n]", tmp.fio);
        printf("address: ");
        scanf(" %[^\n]", tmp.adr);
        printf("birth(month): ");
        scanf("%d", &tmp.mnth);
        printf("birth(year): ");
        scanf("%d", &tmp.yr);
        tmp.next = NULL;
        ourgrp = addstud(ourgrp, &tmp);
        putchar('\n');
    }
    for (i = 0, p = ourgrp; i < NSTUDENTS; p = p->next, i++) {
        if (p->mnth != FEB)
            continue;
        printf("%d:\n", i+1);
        printf("%s\n", p->fcl);
        printf("%d\n", p->grp);
        printf("%s\n", p->fio);
        printf("%s\n", p->adr);
        printf("%d\n", p->mnth);
        printf("%d\n", p->yr);
        putchar('\n');
    }
    ourgrp = freestud(ourgrp);
    return 0;
}
 
/* addstud:  добавляет студента в список */
Studptr addstud(Studptr p, Studptr s)
{
    Studptr tmp;
    
    if (p == NULL) {
        if ((p = studalloc()) != NULL) {
            strcpy(p->fcl,s->fcl);
            p->grp = s->grp;
            strcpy(p->fio, s->fio);
            strcpy(p->adr, s->adr);
            p->mnth = s->mnth;
            p->yr = s->yr;
            p->next = s->next;
        }    
    } else {
        if ((tmp = studalloc()) != NULL) {
            strcpy(tmp->fcl, s->fcl);
            tmp->grp = s->grp;
            strcpy(tmp->fio, s->fio);
            strcpy(tmp->adr, s->adr);
            tmp->mnth = s->mnth;
            tmp->yr = s->yr;
            tmp->next = p;
        }
        p = tmp;
    }    
    return p;
}
 
/* studalloc:  выделяет память под студента */
Studptr studalloc(void)
{
    return (Studptr) malloc(sizeof(Student));
}
 
/* freestud:  освобождает список из памяти */
Studptr freestud(Studptr p)
{
    Studptr q;
    
    while (p != NULL) {
        q = p;
        p = p->next;
        free(q);
    }
    return p;    
}
дополнил функцией освобождения, коменты к функциям
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru