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

Структура "Студент": переделать задачу с использованием указателей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Прекращена работа программы с++ http://www.cyberforum.ru/cpp-beginners/thread1230025.html
Помогите . #include <iostream> #include <vector> #include <iterator> using namespace std; bool sorted(int a,int razmer) { int z=0,tmp=a; for(int i=razmer-2;i>=0;i--)
C++ Ошибка при записи или чтении в бинарный файл Есть такие вот типы данных: struct Nomer { int n, tsena1Deni; string klass; int kMest, kZaselenii; bool svoboden; Nomer *sled; }; http://www.cyberforum.ru/cpp-beginners/thread1229879.html
C++ Отсортировать по убыванию тот столбец матрицы A, в котором находится макс. элемент второй матрицы D
Задано две матрицы А и Д. Составить программу сортировки в порядке убывания сверху вниз того столбца матрицы в котором находится максимальный элемент второй строки матрицы Д. Исходные и результирующие матрицы должны быть записаны в файл.
C++ Разработать программу формирования множества строчных латинских букв
Разработать программу формирования множества строчных латинских букв, содержащихся в заданном текстовом файле, и подсчета количества знаков препинания в нем. Результат записать в текстовый файл.
C++ Вставки препроцессорных макросов типа __FUNCTION__ в функцию в качестве параметров по умолчанию http://www.cyberforum.ru/cpp-beginners/thread1229623.html
Бонжорно :) Как можно накидать функцию, чтоб в качестве параметра по умолчанию передать ей название функции, откуда она вызывается? Нужно для лога. Ну вот например (понятно дело не компильнётся, т.к. error C2457: '__FUNCTION__': predefined macro cannot appear outside of a function body) void SuperLog(std::string logMsg, std::string caller = __FUNCTION__); В коде я хочу использовать свой...
C++ Использование setf() для установки флага этот листинг работает: #include <iostream> using namespace std; int main() { cout.setf(ios::showpos); cout.setf(ios::scientific); подробнее

Показать сообщение отдельно
Vtulhu
369 / 375 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
21.07.2014, 01:16     Структура "Студент": переделать задачу с использованием указателей
Я написал на С, но в данном случае это, как вы все понимаете, несущественно. На С++ будет то же самое, только malloc можно заменить на new. А можно и не заменять... Я даже усложнил немного задание: студенты сортируются по группам, в внутри группы - по именам. Почему бы и нет? Строго говоря, условию задачи это не противоречит.

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 <stdlib.h>     // malloc, qsort
#include <stdio.h>      // printf
#include <string.h>     // strcpy, strcmp
 
static const char* const NAMES[10] = {
    "Abdulla",
    "Boris",
    "Viktor",
    "Genrih",
    "Damir",
    "Elena",
    "Zigmund",
    "Igor",
    "Kira",
    "Leonid"
};
 
typedef struct student {
    char name[256];
    int group;
} *Student;
 
static Student Student_New(int n)
{
    Student st = (Student) malloc(sizeof(*Student));
    strcpy(st->name, NAMES[n]);
    st->group = n % 3 + 1;
    return st;
}
 
static int compare_students_by_group(const void* a, const void* b)
{
    Student st1 = *(Student*)a;
    Student st2 = *(Student*)b;
    int gr1 = st1->group;
    int gr2 = st2->group;
    if( gr1 == gr2 ) {
        return strcmp(st1->name, st2->name);
    }
    return gr1 - gr2;
}
 
int main()
{
    Student students[10];
 
    int i;
    for( i = 0; i < 10; ++i ) {
        students[i] = Student_New(i);
    }
 
    qsort(students, 10, sizeof(Student), compare_students_by_group);
 
    for( i = 0; i < 10; ++i ) {
        printf("Student = %s\nGroup = %d\n\n", students[i]->name, students[i]->group);
    }
 
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru