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

Вывести на экран отсортированный массив структур. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Шахматы: Может ли слон побить слона? http://www.cyberforum.ru/cpp-beginners/thread573766.html
Вот это пример с ладьёй. #include <cstdlib> #include <iostream> using namespace std; bool func(char *one, char *two) { return ( (one==two) || (one==two) );
C++ Указатель на объект класса Добрый день! Есть класс Заполняю с помощью конструктора class TStol : public TMebel { protected: AnsiString Kol_yashikov, Kol_polok; http://www.cyberforum.ru/cpp-beginners/thread573761.html
Описать неориентированный граф C++
Здравствуйте! Используя методы объектно-ориентированного программирования требуется реализовать абстрактную структуру данных (класс), называемую «граф»(G(V,E)) Для выполнения базовых операций над графами требуется реализовать следующие методы класса (операторы): AddVertex (v1) – добавление вершины к графу G, в случае существования в составе G указанной вершины должно выдаваться...
нужна помощь. Сложение и вычитание больших чисел. C++
Доброго время суток! Нужна помощь в задаче. Звучит так: " Сложение и вычитание больших чисел 2^32 и больше. Киньте примеры. Заранее огромное спасибо ОГРОМНОЕ! P.S. 2 день мучаюсь уже. Добавлено через 12 минут помогите пожалуйста, добрые людишки. ООЧень надо решить эту задачу!
C++ Создать одномерный массив с числом элементов как у исходного http://www.cyberforum.ru/cpp-beginners/thread573750.html
void new_arr(int size) { int *B=new int; cout<<sizeof(B)/sizeof(int) // =1 элемент deleteB; } void main() { const N=100;
C++ Зеркально отразить элементы матрицы относительно главной диагонали Дана квадратная матрица A порядка M. Зеркально отразить ее элементы относительно главной диагонали (при этом элементы главной диагонали останутся на прежнем месте, элемент A1,2 поменяется местами с A2,1, элемент A1,3 — с A3,1 и т. д.). Вспомогательную матрицу не использовать. Вот код: #include <iostream> #include <time.h> #include <stdlib.h> using namespace std; int main() { ... подробнее

Показать сообщение отдельно
Ryzhiy_Ezhik
 Аватар для Ryzhiy_Ezhik
0 / 0 / 0
Регистрация: 21.02.2012
Сообщений: 22
14.05.2012, 06:27     Вывести на экран отсортированный массив структур.
Необходимо вывести а экран отсортированный массив структур через двусвязный список. В моём коде какая-то ошибка, т.к. выводится только первый элемент структуры. Вот мой код:
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
#pragma hdrstop
#pragma argsused
#include <vcl.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
 
using namespace std;
//---------------------------------------------------------------------------
 
 struct STUDENT {
  char* NAME;
  int GROUP;
  float SES[5];
  };
 
 void printstud (STUDENT STUD)
 {
  static int count = 0;
  cout<<"\n"<<++ count<<"."<<STUD.NAME;
  cout.width(5);
  cout<<STUD.GROUP;
  cout.width(3);
  for (int z = 0; z < 5; z++)
   cout<<" "<<STUD.SES[z];
 }
 struct record
 {
  STUDENT STUD;
  record *prior;
  record *next;
 };
 
STUDENT STD[] = {
                {"Petrov ",123,{3,3,4,5,4}},
                {"Sidorov",234,{4,3,2,2,3}},
                {"Ivanov ",345,{4,5,4,3,4}},
                {"Popov  ",456,{2,3,4,2,4}},
                };
 
void main ()
{
 clrscr();
 
 int i,j;
 float sb[]={0,0,0,0};
 float psb;
 STUDENT ST;
 cout << endl;
 
 for (i = 0; i < 4; i++)
  { for (j = 0; j < 5; j++)
     sb[i]+=STD[i].SES[j];
    sb[i]=sb[i]/5;
  }
 
 for (i = 0; i < N-1; i++)
  for (j = i+1; j < N; j++)
   if (sb[i] > sb[j])
    {
     ST = STD[i];
     STD[i] = STD[j];
     STD[j] = ST;
 
     psb = sb[i];
     sb[i] = sb[j];
     sb[j] = psb;
    }
 
record *begin = NULL;
record *last = NULL;
record *list = NULL;
 
int n=sizeof(STD)/sizeof(STD[0]);
 
for (int i=0; i < n; i++)
 {
 last = new(record);
 (*last).STUD.NAME = STD[i].NAME;
 (*last).STUD.GROUP = STD[i].GROUP;
 for (int j=0; j < 5; j++)
   last->STUD.SES[j] = STD[i].SES[j];
 if(begin == NULL)
  {
  last->prior = NULL;
  begin = last;
  last->next = NULL;
  }
 }
 
list=begin;
cout<<endl;
while (list != NULL)
 {
  printstud(list->STUD);
  list=list->next;
 }
 
 getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru