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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sm0og1er
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 66
#1

Функции. Динамический массив - C++

10.12.2013, 18:14. Просмотров 185. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста.
1. Заполнить массив случайными числами.
2. Найти минимальный отрицательный элемент.
3. Вычислить среднеарифметическое положительных элементов массива.
4. Вывести положительные элементы на экран
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#include "stdafx.h"
#include "math.h"
#include "iostream"
using namespace std;
 
//Задание 5.1.7 (вычислить y = |x - cosx (x)|)
double COSINUS (double *); // вычисляет косинус
//Задание 5.2
double yTrey(double &,double &, double &); // углы треугольника
//Задание 5.3.7
void input_array(int * A, int N); // вводим массив с клавы
int min_Array(int *A, int N); // мин. полож. элемент масс.
int kra3_Array(int *A, int N); // сумма полож. кратных трем
void nul(int *A, int N);  //ненулевые элементы
//Задание 5.4
void dmas(int *A, int N); // массив на экран
int min_otr(int *A, int N); //минимальный отрицательный элемент
double srarif(int *A, int N); // ср.ариф положительных элементов
void pol(int *A, int N);   //положительные элементы
 
 
 
void main ()
{
    setlocale (LC_ALL, "Russian");
    printf ("Легензов Евгений Юрьевич 1 курс ИБ-136/1\n");
    printf ("\nЗадание 5.1.7\n");
    double *x;
    double xa;
    printf ("Введите X:\t");
    cin >> xa;
    x = & xa; // отправляем адрес в указатель;
    printf ("Ответ:\t%.6f", COSINUS (x));cout << "\n";
//________________________________________________
    printf("\nЗадания 5.2.10(5.1.7+3)\n");
    double a,b,c;
    printf("Введите стороны треугольника: a,b,c \n");
    cin >> a;
    cin >> b;
    cin >> c;
    double &a1=a,&b2=b,&c3=c;  // ссылки на переменные
    printf("угол C:\t%.4f\n",yTrey(a1,b2,c3));
    printf("Угол A:\t%.4f\n",yTrey(b2,a1,c3));
    printf("Угол B:\t%.4f\n",yTrey(c3,b2,a1));
//________________________________________________
    printf("\nЗадание 5.3.7\n");
    const int N = 10;
    int A[N];
    input_array(A, N);
    printf("Минимальный положительный  элемент:\t%d",min_Array(A,N));cout << "\n";
    printf("Сумма элементов массива кратным трем:\t%d",kra3_Array(A,N));cout << "\n";
    printf("Ненулевые элементы:\t");
    nul(A,N);
//_________________________________________________
    printf("\nЗадания 5.4.10(5.3.7+3)\n");
    int N1;
    printf("Введите размерность массива:\t");
    cin >> N1;
    int *Array = new int [N1]; // выделение памяти в динамический массив
    dmas(Array,N1);      // n1(размерность) отправляем в N 
    printf("Минимальный отрицательный элемент:\t%d",min_otr(A,N));cout << "\n";
    printf("Среднее арифметическое положительных элементов:\t\t%.2f\n",srarif(A,N));
    printf("Положительные эллементы:");
    pol(A,N);
    delete [] Array;
 
}
 
//Задание 5.1.7
double COSINUS (double *x)
{
 
    double y = 0;
    double Pi = 3.14159265;
    double c;
    c=(*x * Pi) / 180;                    //перевод из градусов в радианы
    y = fabs ((*x) - cos(c) );           // формула
    return y;
}
 
//Задание 5.2.7
double yTrey(double&a, double&b, double&c)
{
    double Pi = 3.14159265;
    double kons, answ;
    kons=((b)*(b)+(c)*(c)-(a)*(a))/(2*(c)*(b));       //формула нахождения косинуса угла
    answ=acos(kons)*180/Pi;                          // получение угла, ставим в аркосинус и переводим радианы
    return answ;
}
 
//Задание 5.3.7
void input_array(int * A, int N)
{
    for(int i = 0; i < N; ++i)
    {
        cout << "Введите массив[" << i << "]: ";
        cin >> *(A + i);
    }
}
int min_Array(int *A, int N)
{
    int min;
    min=*(A+0);  // пусть минимальное число будет первым элементом массива
    for (int i = 0; i < N; i++)
    {
        if (min >= *(A+i) && *(A+i) > 0) // аналогично A[i]
        {
            min = *(A+i);
        }
    }
    return min;
}
int kra3_Array(int *A, int N)
{
    int answer=0;
    for (int i = 0; i < N; i++)
        {
            if (*(A+i) > 0 && * (A+i) % 3==0) //аналогично A[i] (если массив больше нуля и окончание 0 от деления на 3)
            {
                answer += *(A+i);
            }
        }
    return answer;
}
void nul(int *A, int N)
{
    for (int i = 0; i < N; i++)
    {
        if (*(A+i)!=0 && *(A+i) > 0)
        
        {printf ("%d\t",*(A+i));}
        
 
    }
}
 
//Задание 5.4
void dmas(int *A, int N)
{
    for (int i = 0; i < N; i++)
    {
        cout << "Введите массив[" << i << "]: ";
        cin >> *(A+1); //печатаем массив
    }
}
int min_otr(int *A, int N)
{
    int minO=*(A+0);
    for (int i = 0; i < N; i++)
    {
        if (*(A+i) < minO)
        {
            minO=*(A+i);
        }
    }
    return minO;
}
double srarif(int *A, int N)
{
    double  otvet = 0; // ответ на задание
    double sred = 0; //среднее арифметическое
    double sum = 0; //сумма элементов массива
    for (int i = 0; i < N; i++)
    {
        if ( *(A+i) > 0 )
        {
            sred++;
            sum=sum+*(A+i);
        }
        otvet = sum / sred;
    }
        return otvet;
}
void pol(int *A, int N)
{
    for (int i = 0;i < N; i++)
    {
        if (*(A+i)>0)
        {
            printf("%3d",*(A+i));   
        }
    }
}
Задание 5.4 работает не правильно!( В чем ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 18:14     Функции. Динамический массив
Посмотрите здесь:

Динамический массив и функции - C++
Здравствуйте. Я составила функцию заполнения динамического массива. У меня такой вопрос. Выведение массива на экран нужно писать в void...

Двумерный динамический массив вылетает в функции - C++
Вот программа,функции выполняют заполнение и вывод. Суть в том,что,если создать массив с числом строк больше или равными числу...

Динамический массив как параметр функции - C++
Господа, прошу Вас помочь с функцией. Собственно говоря, необходимо с помощью функции заполнить несколько двумерный динамических...

Перевыделение памяти в функции - динамический массив - C++
Доброе время суток, Подскажите как сделать такую задачу Только перешел на динамические массивы За ранее благодарен Описать массив...

Динамический массив. Произведение 2х матриц с использованием собственной функции - C++
Помогите исправить ошибки и укажите на недочеты. Ошибки: Строка 54. cannot convert 'int*' to 'int**' for argument '3' to 'int*...

Разработать программу, создающую динамический массив и тестирующую функции работы с ним - C++
Помогите разработать программу,создающую динамический массив и тестирующую функции работы с ним

Заполнить динамический массив случайными числами и реализовать функции работы с массивом согласно условию - C++
Всем доброго времени суток!) Уважаемые знатоки и пользователи, помогите, пожалуйста, написать следующую программу: Сформировать...

Динамический ввод функции - C++
Есть необходимость создать ввод функции в консоль. На данный момент присутствует такая идея:так как в функции несколько составляющих, то...

динамический массив - C++
ктонибуть, напишите пожалуста задачу на динамический массив. ну и само условие, ибо в книге нифига не понятно..может так хоть чтото пайму.

Динамический массив - C++
Задание такое: Должно быть реализовано 2 способа заполнения массива: ручное (элементы массива вводит сам пользователь) и автоматическое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru