Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 02.10.2020
Сообщений: 14
1

Перенести координаты точек, удовлетворяющих условию, в массив X и в массив Y соответственно

20.11.2020, 11:41. Показов 793. Ответов 3

Author24 — интернет-сервис помощи студентам
Дан массив, который содержит целочисленные координаты n точек плоскости.
Необходимо создать два одномерных статических массива Х(для абсцисс) и Y(для ординат), в которые войдут точки плоскости, не попадающие в заштрихованную область
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main()
{
    const int n = 13;
    int A[n];
    int X[n];
    for (int i = 0; i < n; i++)
        cin >> A[i];
    int *pA = A;
    int *pX = X;
    if (n >= 0 && n <= 3)
    {
        for (int i = 0; i < n; i++)
            *pX++ = *pA++;
        
    }
    cout << *pX << ' ';
 
    return 0;
}
Помогите, пожалуйста, очень нужно. Что я делаю не так?
принцип переноса элементов из одного массива в другой с помощью указателя мне понятен.
сам график:
Перенести координаты точек, удовлетворяющих условию, в массив X и в массив Y соответственно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2020, 11:41
Ответы с готовыми решениями:

Сформировать массив Y из элемента массива X, удовлетворяющих условию
Дан массив X(N).Сформировать массив Y из элемента массива X, удовлетворяющих условию...

Сформировать одномерный массив Y, состоящий из элементов, удовлетворяющих условию
Задана последовательность X = (x1, x2, …, x10). Сформировать из неё одномерный массив Y, состоящий...

Дан массив Х[1..М]. Вычислить сумму элементов, удовлетворяющих условию A<=X[i]<=B.
1. Дан массив Х. Вычислить сумму элементов, удовлетворяющих условию A&lt;=X&lt;=B. Используйте адресацию...

Записать элементы массива X(x1,x2,.,xn), удовлетворяющих условию -10<x<10, подряд в массив Y(y1,y2,.,yn)
Записать элементы массива X(x1,x2,...,xn), удовлетворяющих условию -10&lt;x&lt;10, подряд в массив...

3
1709 / 1109 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
20.11.2020, 15:32 2
Цитата Сообщение от flower_war Посмотреть сообщение
Что я делаю не так?
вот это
Цитата Сообщение от flower_war Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
int A[n];
    int X[n];
    for (int i = 0; i < n; i++)
        cin >> A[i];
    int *pA = A;
    int *pX = X;
    if (n >= 0 && n <= 3)
    {
        for (int i = 0; i < n; i++)
            *pX++ = *pA++;
}
    cout << *pX << ' ';
Проверяй, пограничные точки считаются входящими:

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
#include <iostream>
#include <cmath>
 
bool InOut(double x, double y)
{
    bool rec = ( (x >= 0. && x <= 3.)   && (y >= 0. && y <=6.) );
    bool R = ( sqrt(x*x + y*y) <= 3. );
    
    x -= 1.5;
    
    bool r = ( sqrt(x*x + y*y) < 1.5 );
    
    return ( (R || rec) && !r );
}
 
int main()
{
    
    const int n = 4;
    int count = 0;
    
    int X[n] = {0};
    int Y[n] = {0};
    
    int x, y;
    
    for(int i=0; i<n; ++i)
    {
        std::cout << "X, Y:";
        std::cin >> x >> y;
        if(!(InOut(x,y)))
        {
            X[count] = x;
            Y[count] = y;
            ++count;
        }
    }
    
    std::cout << "\nResult: \n";
    
    for(int i = 0; i < count; ++i)
    {
        std::cout << "\n" << X[i] << ":" << Y[i];   
    }
 
    return 0;
}
Добавлено через 25 минут
Цитата Сообщение от flower_war Посмотреть сообщение
Дан массив, который содержит целочисленные координаты n точек плоскости.
Да, про массив я проморгал; в любом случае неясно в каком виде он координаты содержит, но, надеюсь, переделать под это у тебя получится.
1
0 / 0 / 0
Регистрация: 02.10.2020
Сообщений: 14
21.11.2020, 14:59  [ТС] 3
Цитата Сообщение от Folian Посмотреть сообщение
bool InOut(double x, double y)
{
    bool rec = ( (x >= 0. && x <= 3.)   && (y >= 0. && y <=6.) );
    bool R = ( sqrt(x*x + y*y) <= 3. );
x -= 1.5;
bool r = ( sqrt(x*x + y*y) < 1.5 );
return ( (R || rec) && !r );
}
можете объяснить эту часть, пожалуйста?
0
1709 / 1109 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
21.11.2020, 20:46 4
Цитата Сообщение от flower_war Посмотреть сообщение
можете объяснить эту часть, пожалуйста?
Это функция, проверяющая попадание в заштрихованную область.
rec - прямоугольник, R - большой круг, r - малый.

Может что-то конкретное непонятно?
0
21.11.2020, 20:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2020, 20:46
Помогаю со студенческими работами здесь

Создать массив из элементов другого массива, удовлетворяющих условию
Помогите пожалуйста... очень надо) желательно побыстрей... а) Сформировать массив Y, в который...

Массив: Определить количество элементов массива, удовлетворяющих условию Аi < (Ai-1 + Ai+1)/2.
Дан числовой массив А, состоящий из n-натуральных чисел. Определить количество элементов массива, ...

Сформировать массив Y из элементов массива X, удовлетворяющих данному условию
X = {- 8, 24, 6, 3; 7; 9; -14, 3, 12, -5; 0; -15; -9} условие | Xk | ≤10 и кратные трем...

Записать в массив Х индексы элементов массива Z, удовлетворяющих заданному условию
Задан массив Z(100). Записать в массив Х номеpа элементов массива Z, удовлетвоpяющих условию 0 &lt;=...

Сформировать одномерный массив Y, состоящий из элементов, удовлетворяющих условию |Xi|<|Z|, где Z=X(5) + 0.5
как написать программу?может кто помочь? Задана последовательность X = (x1, x2, …, x10). ...

Сформировать из прсоедовательности одномерный массив, состоящий из элементов, удовлетворяющих условию
Задана последовательность X = (x1, x2, …, x10). Сформировать из неё одномерный массив Y,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru