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

Массив структур - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Полное решение, классы!!! + проверь свой АНГЛ!!! http://www.cyberforum.ru/cpp-beginners/thread208266.html
необходимо полное решение с оформлением
C++ С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... 17)Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них и длины их сторон. Один прямоугольник назовём... http://www.cyberforum.ru/cpp-beginners/thread208257.html
C++ "cin","cout" на "printf","scanf"
Вот ещё прога. Мне чисто нужно переделать её на printf,scanf и не используя функцию show, а puts и gets. #include <iostream> using namespace std; void show(char *f,char *i,char *o) { cout...
Переместить элемент в конец списка и вывести указатели на первый и последний элементы C++
Помогите, пожалуйста! Прошу вас о помощи в написании программы на С++... Задача такова: Дан указатель P0 на один из элементов непустого двусвязного списка. Переместить данный элемент в конец списка...
C++ Подсчитать число вхождений буквы "a" в строку http://www.cyberforum.ru/cpp-beginners/thread208225.html
Ребят помогите пожалуйста решить задачу,завтра лабу сдавать,а я в этом ничего не понимаю...( 15. Введите с клавиатуры строку символов, после чего подсчитайте суммарное число вхождений буквы...
C++ Напечатать в пятеричной системе исчисления числа от 0 до n Заданное натуральное число n. Напечатать в пятеричной системе исчисления числа от 0 до n. Задане натуральне число n. Надрукувати в п’ятірковій системі числення числа від 0 до n. Оффициальным... подробнее

Показать сообщение отдельно
dihlofos
Бродяга
304 / 258 / 17
Регистрация: 27.08.2010
Сообщений: 553
11.12.2010, 09:26
Цитата Сообщение от nondeadlollipop Посмотреть сообщение
как тогда взять значение nb?
Ну можно, например, вернуть его значение из ф-ции vubor. Вобщем попробовал исправить ваш код, хотя проще было заново переписать:
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
#include <iostream>
#include <cstring>
#include <iomanip>
#include <conio.h>
using namespace std;
 
const int Nmax=100;
float srg;
 
struct stud
{
        char fio[20];
        int oc[3];
        float sr;
}a[Nmax],b[Nmax];
 
void vvod(int &n,stud am[])
{
        int i;
        cout<<"Razmer massiva";
        cin>>n;
        for(i=0;i<n;i++)
        {
                cout<<"Student # "<<i<<endl;
                cout<<"Familiya"<<endl;
                scanf("%s",a[i].fio);
                cout<<"3 ocenki"<<endl;
                scanf("%d %d %d",&a[i].oc[0],&a[i].oc[1],&a[i].oc[2]);
                a[i].sr=(a[i].oc[0]+a[i].oc[1]+a[i].oc[2])/3;
                srg+=a[i].sr;
        }
}
 
int vubor(int n,stud am[],stud bm[])
{
        int i, j;
        int nb = 0;
        srg /= n;
        
        for(i=0;i<n;i++)
    {
                if(a[i].sr > srg) 
        {
            b[nb] = a[i];
            nb++;
        } /* {} - скобки! и ; вместо запятой! */
    }
    return nb; /* возвращаем количество найденных элементов */
}
 
void sort(int nb, stud bm[])
{
        stud s;
        for(int i=0; i<nb; i++)
                for(int j=0;j<i;j++)
                        if(strcmp(b[j].fio,b[j+1].fio)>0) 
            {
                s=b[j];
                b[j]=b[j+1];
                b[j+1]=s;
            }  /* опять же пропустили {} - скобки! и ; вместо запятых! */
}
 
void vuvod(int n,stud am[])
{
        cout<<"|"<<setw(12)<<"Familiya"<<"|"<<setw(9)<<"Ocenki"<<"|"<<setw(8)<<"Srednee"<<"|"<<"\n";
        cout<<"|"<<setw(31)<<"-------------------------------"<<"|"<<"\n";
        for(int i=0;i<n;i++)
                cout<<"|"<<setw(12)<<am[i].fio<<"|  "<<am[i].oc[0]<<"  "<<am[i].oc[1]<<"  "<<am[i].oc[2]<<"|"<<setw(8)<<am[i].sr<<"|"<<endl; 
/* имя массива не a, a am! */
}
 
void main()
{
        int n,nb;
        vvod(n,a);
        cout<<"Vvedennui massiv"<<endl;
        vuvod(n,a);
 
        nb = vubor(n,a,b);
 
        sort(nb,b);
        cout<<"Polucennui massiv"<<endl;
        vuvod(nb,b);
 
        getch();
}
Возможно я упустил какие-то ошибки, но вроде пашет. К тому же все эти статические массивы, глобальные переменные, смешивание C и C++, и прочие "радости жизни"... Избавьтесь от этого сами, а мне уже лень
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru