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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка двумерного массива и заголовочный файл http://www.cyberforum.ru/cpp-beginners/thread665011.html
Помогите пожалуйста исправить ошибку. sort2.h: void sort2(int array,int n); sort2.cpp: #include "sort2.h"; #include "stdafx.h"; void sort2(int array, int n)
C++ Функции в struct Я даже не думал, что в struct можно объявлять функции. Представлялось так: struct - набор данных, class - уже объектное что-то, грубо выражаясь данные+методы. Оказалось не совсем так. Тогда в чем... http://www.cyberforum.ru/cpp-beginners/thread664998.html
Удаление комментариев из листинга программы C++
Создать программу, которая будет удалять из листинга программы на языке с++ (файл*.cpp) коментарии вида // коментарий. Для работы с файлами использовать фунцкцию cstdio.
C++ Файлы: Найти детерминант матрицы, записанной в файле
В файле test.in записано матрицу NxN. Найти ее детерминант. Результат записать в test.out. Для работы использовать фунции cstdio. ОЧЕНЬ НУЖЕН КОД ПРОГРАММЫ .
C++ Количество повторяющихся элементов в массиве http://www.cyberforum.ru/cpp-beginners/thread664961.html
Даны натуральное n и целые a1, a2, ..., an. Для каждого аi найти ki количество его повторов последовательности. P.S. нужно написать программу с функциями: отдельно функция введения массива с...
C++ freeglut draw text как вывести текст с помощью freeglut? вот текст программы. во-первых не выводит кириллицу. во вторых freeglut предоставляет только 7 шрифтов или как-то можно использовать системные? в третьих, самое... подробнее

Показать сообщение отдельно
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
08.10.2012, 18:44  [ТС]
вот написал все функции. Подскажите как оптимизировать код, если возможно. Некрасивый он какой-то.
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// массивы структур.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
 
 
#include <iostream>
using namespace std;
struct Vector
{
    double x,y,z;
};
double Length  (Vector a)
{
    double length;
    length=sqrt(a.x*a.x+a.y*a.y+a.z*a.z);
    //cout<<"Length of a vector= "<<length<<endl;
    return length;
}
void InputMas(Vector* vec,int n)
{
    for(int i=0;i<n;i++)
    {
        cout<<"Введите ["<<i<<"] элементы: ";cin>>vec[i].x>>vec[i].y>>vec[i].z;
    }
}
void OutputMass(Vector* vec,int n)
{
    for(int i=0;i<n;i++)
    {
        cout<<vec[i].x<<" "<<vec[i].y<<" "<<vec[i].z<<" "<<endl;
    }
    cout<<endl;
}
double Max_length(Vector* vec,int n)
{
    double rez; 
    rez=Length(vec[0]); 
    for(int i=0;i<n;i++)
    {       
        if (Length(vec[i])>rez)
        rez=Length(vec[i]);     
    }   
    return rez;
}
Vector enter_coord(Vector& b)
{   
    double x,y,z;
    cout<<"enter the coordinates of X"<<endl;   
    cin>>x;
    b.x=x;      
    cout<<"enter the coordinates of Y"<<endl;
    cin>>y;
    b.y=y;  
    cout<<"enter the coordinates of Z"<<endl;
    cin>>z;
    b.z=z;
    return b;
}
int search(Vector a,Vector* vec,int n)
{
    int rez,temp=0;
    for(int i=0;i<n;i++)
    {
        if(a.x==vec[i].x,a.y==vec[i].y,a.z==vec[i].z)
        {
            temp=i;
            break;
        }
    if (temp==0)
        rez=-1;
    else
        rez=temp;
    return rez;
    }
}
Vector sum(Vector* vec,int n)
{
    Vector rez;
    rez.x=0;
    rez.y=0;
    rez.z=0;
    for(int i=0;i<n;i++)
    {
        rez.x+=vec[i].x;
        rez.y+=vec[i].y;
        rez.z+=vec[i].z;
    }
    return rez;
}
double Scalar (Vector a,Vector b)
{
    double rez=(a.x*b.x+a.y*b.y+a.z*b.z);   
    return rez;
}
int perpendicular(Vector a,Vector* vec,int n)
{
    int rez=0;
    for(int i=0;i<n;i++)
    {
        if (Scalar(a,vec[i])==0)
            rez++;
    }
    return rez;
}
int main()
{
    setlocale(0,"rus");
    int n;
    double max_l;
    Vector a,summa;
    cout<<"Введите размер массива: ";cin>>n;
    Vector* vec=new Vector[n];
    InputMas(vec,n);
    OutputMass(vec,n);
    max_l=Max_length(vec,n);
    cout<<"максимальная длина вектора в массиве="<<max_l<<endl;
    summa=sum(vec,n);
    cout<<"сумма всех векторов массива ={"<<summa.x<<";"<<summa.y<<";"<<summa.z<<" }"<<endl;
    cout<<"введите координаты искомого вектора"<<endl;  
    enter_coord(a);
    if (search(a,vec,n)==-1)
        cout<<"искомого вектора в массиве нет"<<endl;
    else
        cout<<"индекс первого вхождения вектора в массив="<<search(a,vec,n)<<endl;
    cout<<"количество векторов в массиве, перпендикулярных вектору {"<<a.x<<";"<<a.y<<";"<<a.z<<"} = "<<perpendicular(a,vec,n)<<endl;
    delete[] vec;
    system("pause");
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru