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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Полное решение, классы!!! + проверь свой АНГЛ!!! http://www.cyberforum.ru/cpp-beginners/thread208266.html
необходимо полное решение с оформлением
C++ С++ Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них... 17)Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из них и длины их сторон. Один прямоугольник назовём первым, другой вторым определить пересекаются ли эти прямоугольники. C++ Собственно в универе дали такую задачу да же не знаю как её вобще решить просто тупо на бумаге не то что в c++загнать. 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 <<f<<" "<<i<<"."<<o<<"."; cin.get(); }
Переместить элемент в конец списка и вывести указатели на первый и последний элементы C++
Помогите, пожалуйста! Прошу вас о помощи в написании программы на С++... Задача такова: Дан указатель P0 на один из элементов непустого двусвязного списка. Переместить данный элемент в конец списка и вывести указатели на первый и последний элементы преобразованного списка. Операции выделения и освобождения памяти не использовать
C++ Подсчитать число вхождений буквы "a" в строку http://www.cyberforum.ru/cpp-beginners/thread208225.html
Ребят помогите пожалуйста решить задачу,завтра лабу сдавать,а я в этом ничего не понимаю...( 15. Введите с клавиатуры строку символов, после чего подсчитайте суммарное число вхождений буквы "a" (латиница) и выдайте это число на экран.
C++ Напечатать в пятеричной системе исчисления числа от 0 до n Заданное натуральное число n. Напечатать в пятеричной системе исчисления числа от 0 до n. Задане натуральне число n. Надрукувати в п’ятірковій системі числення числа від 0 до n. Оффициальным языком форума является русский язык. В дальнейшем темы с заданиями на языке отличном от русского будут удаляться. подробнее

Показать сообщение отдельно
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 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++, и прочие "радости жизни"... Избавьтесь от этого сами, а мне уже лень
 
Текущее время: 16:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru