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

Структуры: Списки студентов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Какую же книгу изучать? :O C++ http://www.cyberforum.ru/cpp-beginners/thread264608.html
Здравствуйте все. :senor: Сложилась небольшая проблема, касающаяся определения книги, которую можно было бы достойно изучить. Не могли бы вы подсказать новичку какую книгу или какое учебное...
C++ Проверка на NaN (С/С++) Подскажите, пожалуйста, как проверить является ли вещественное число NaN'ом? Как вариант сделать побитовое умножение на маску... Но тогда первый бит (знак) теряется.. Что делать? Желательно без... http://www.cyberforum.ru/cpp-beginners/thread264598.html
Народ, чет с while... C++
Тут проблемка, захотел написать миниатюрную игрушечку на с++ и в єпизоде боя использовал do-while... и вот вроде кк все нормально, оба бьються, но бой не коньчается... просто хп в - уходит и считай...
C++ Инициализация вещественных статических константных полей класса С++
static const double x=2.15; //c double и float не инициализирует. Почему??
C++ вычислить сумму и количество элементов в массива X[15],для 0<x1<1 http://www.cyberforum.ru/cpp-beginners/thread264537.html
вычислить сумму и количество элементов в массива Xв массив y и подсчитать их количество для для 0<x1<1
C++ СОРТИРОВКА Нужно отсортировать массив тремя видами сортировки : Шелла,Слияния,Пирамидальная. Язык : С++ подробнее

Показать сообщение отдельно
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
04.04.2011, 23:08
Ворнинги можно игнорировать. Массивы, видимо, придется выделить динамически.
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
 
typedef struct Card {
        int  surname;
        int  group;
        int  discipline;
        int  mark;
} Card;
 
void CardInit(struct Card *card, int surname_id, int group_id,
                                 int  discipline_id, int  mark) {
  card->surname = surname_id;
  card->group = group_id;
  card->discipline = discipline_id;
  card->mark = mark;
}
 
void CardPrint(struct Card *card, char *surnames[], char *groups[],
               char *disciplines[]) {
  printf("Surname: %s\nGroup: %s\nDiscipline: %s\nMark: %d\n-----\n",
         surnames[card->surname], groups[card->group],
         disciplines[card->discipline], card->mark);
}
 
typedef struct CardStatistics {
  int surname;
  int group;
  int is_good;
} CardStatistics;
 
void CardStatisticsInit(struct CardStatistics *card_statistics,
                        int surname_id, int group_id) {
    card_statistics->surname = surname_id;
    card_statistics->group = group_id;
    card_statistics->is_good = 1;
}
 
void CardStatisticsCorrect(
       struct CardStatistics card_statistics[],
       struct Card *card) {
  if (card->mark >= 4)
    return;
  size_t result = 0;
  while (!(card_statistics[result].surname == card->surname &&
         card_statistics[result].group == card->group))
    ++result;
  card_statistics[result].is_good = 0;
}
 
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  char *groups[] = { "101", "201", "301" };
  char *disciplines[] = { "math", "physics", "biology", "history" };
  char *surnames[] = { "Petrov", "Ivanov", "Sidorov", "Kuznetsov" };
  size_t group_count = sizeof(groups) / sizeof(*groups);
  size_t discipline_count = sizeof(disciplines) / sizeof(*disciplines);
  size_t surname_count = sizeof(surnames) / sizeof(*surnames);
 
  size_t card_array_size = group_count * discipline_count * surname_count;
  //struct Card cards[card_array_size];
  struct Card *cards = (struct Card*)malloc(sizeof(struct Card) *
                                            card_array_size);
 
  int group_id, discipline_id, surname_id, card_id = 0;
  for (surname_id = 0; surname_id < surname_count; ++surname_id)
    for (group_id = 0; group_id < group_count; ++group_id)
      for (discipline_id = 0; discipline_id < discipline_count; ++discipline_id)
        CardInit(&cards[card_id++], surname_id, group_id,
                 discipline_id, rand() % 3 + 3);
 
  for (card_id = 0; card_id < card_array_size; ++card_id)
    CardPrint(&cards[card_id], surnames, groups, disciplines);
 
  size_t card_statistics_size = group_count * surname_count;
  int card_statistics_id = 0;
  //struct CardStatistics card_statistics[card_statistics_size];
  struct CardStatistics *card_statistics = (struct CardStatistics*)
         malloc(sizeof(struct CardStatistics) * card_statistics_size);
  for (surname_id = 0; surname_id < surname_count; ++surname_id)
    for (group_id = 0; group_id < group_count; ++group_id)
      CardStatisticsInit(&card_statistics[card_statistics_id++],
                         surname_id, group_id);
 
  for (card_id = 0; card_id < card_array_size; ++card_id)
    CardStatisticsCorrect(card_statistics, &cards[card_id]);
 
  for (card_statistics_id = 0; card_statistics_id < card_statistics_size;
       ++card_statistics_id) {
    if (card_statistics[card_statistics_id].is_good)
      printf("Student %s of group %s has all marks good.\n",
             surnames[card_statistics[card_statistics_id].surname],
             groups[card_statistics[card_statistics_id].group]);
  }
 
  free(card_statistics);
  free(cards);
 
  return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru