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

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

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

приложение не правильно сортирует из-за чего показывает не корректные результаты - C++

08.06.2013, 19:39. Просмотров 246. Ответов 3
Метки нет (Все метки)

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
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
int main()
{
 
   setlocale(LC_ALL, "Russian");
 int N,i,Buf;
cout << "введите введите колличество точек  "; 
 
cin >> N;
int *x = new int[N];
for (i = 0; i < N; i++)
{
cout << "Введите  " << i <<"-ую координату x: ";
cin >> x[i];
}
int *y = new int[N];
for (i = 0; i < N; i++)
{
cout << "Введите  " << i <<"-ую координату y: ";
cin >> y[i];
}
double* z=new double[N];
for (i = 0; i < N; i++)
{
z[i]=sqrt(double( x[i] * x[i] +  y[i] * y[i]));
cout << z[i] <<" ";
 
}
for (i = 0; i < N; i++)
if(z[i]<z[i++])
{
Buf=z[i];
z[i]=z[i++];
z[i++]=Buf;
}
 
 
 
cout<<z[N-1]<<"максимально отдалёная точка от начала координат ";
 
 
 
cout<<z[0]<<"минимально отдалёная точка от начала координат  ";
 
float l;
 
 
l=(x[N-1]-x[0])*(x[N-1]-x[0])+(y[N-1]-y[0])*(y[N-1]-y[0]);  
 
 
cout<<"растояние между этими точками"<<  l  <<endl;
 
}
тут нужно только поправить сортировку , а так программа правильная

Добавлено через 45 секунд
вот задача к ней


Даны координаты N точек на плоскости в виде маccивов X и Y. Найти наиболее и наименее удаленные точки. Вычисление расстояния между парой точек оформить функцией.

Добавлено через 1 минуту
буду очень благодарен т.к. не получается сортировка
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2013, 19:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос приложение не правильно сортирует из-за чего показывает не корректные результаты (C++):

Почему окно Command Dialog показывает (сортирует) папки и файлы порядке по времени? - Visual Basic
Почему окно Command Dialog показывает (сортирует) папки и файлы порядке по времени. Я вынужден каждую минуту его переводить в сортировку по...

сортирует не совсем правильно - C++
программа сортирует 3 массива сортировкой Шелла и пузырьком, считает время. ток ошибка есть, не могу найти. сортировка Шелла сортирует но в...

Запускаеться только консоль результаты не показывает,что нужно исправить? - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; int main(void) { int t,i, num; /* çàãðóçêà ÷èñåë */ for(t=0; t&lt;5; ++t) for (i=0;...

Aser aspire не загружает виндовс и на экране не чего не показывает - Ноутбуки
Добрый день! сегодня переустановил виндовс 7 вроде все работал нормально после перезагрузка нотбук больше не загружает виндовс и в биос не...

Игра "Угадать число" при переигровке показывает неверные результаты - C#
Программа работает правильно, только когда угадываю число (допустим 43 с 5-й попытки), затем нажимаю 1, чтобы попробывать ещё раз и если...

пагинация не правильно показывает - PHP БД
&lt;?php $result = mysql_query(&quot;SELECT * FROM otziv ORDER BY id DESC &quot;); $max_posts = 3; $num_posts =...

3
Catstail
Модератор
22831 / 11197 / 1812
Регистрация: 12.02.2012
Сообщений: 18,438
08.06.2013, 19:48 #2
1) у тебя в строке 29 считается не расстояние между точками, а расстояние от i-й точки до начала координат
2) сортировать все расстояния в твоей задаче - лишняя работа. Тебе нужно найти только минимум и максимум
3) слова "неправильно" и "некорректные" в твоем вопросе пишутся слитно

Сейчас приведу правильный код...

Добавлено через 1 минуту
Да и сортируешь ты, похоже, неправильно.
1
spruced
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 56
08.06.2013, 19:59  [ТС] #3
Цитата Сообщение от Catstail Посмотреть сообщение
1) у тебя в строке 29 считается не расстояние между точками, а расстояние от i-й точки до начала координат
2) сортировать все расстояния в твоей задаче - лишняя работа. Тебе нужно найти только минимум и максимум
3) слова "неправильно" и "некорректные" в твоем вопросе пишутся слитно
это моя невнимательность а так сортировка реально не правильная я знаю
0
Catstail
Модератор
22831 / 11197 / 1812
Регистрация: 12.02.2012
Сообщений: 18,438
08.06.2013, 20:08 #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
#include <iostream.h>
#include <math.h>
 
void main()
{
 
int N,i,j;
int imin,imax;
int jmin,jmax;
double z,zmax,zmin;
 
    cout << "Enter number of points "; 
    cin >> N;
 
    int *x = new int[N];
    for (i = 0; i < N; i++)
    {
        cout << "Enter " << i <<"-th coord x: ";
        cin >> x[i];
    }
 
    int *y = new int[N];
    for (i = 0; i < N; i++)
    {
        cout << "Enter " << i <<"-th coord y: ";
        cin >> y[i];
    }
 
    // Åñëè ГЁГ±ГЄГ*ГІГј Г±Г*ìóþ áëèçêóþ ГЄ (0,0) òî÷êó
    // ГЁ Г±Г*ìóþ îòäåëåГ*Г*ГіГѕ - ГІГ®:
 
    zmax=sqrt(double(x[0] * x[0] +  y[0] * y[0]));
    zmin=zmax;
    imin=0;
    imax=0;
 
    for (i=1; i < N; i++)
    {
        z=sqrt(double(x[i] * x[i] +  y[i] * y[i]));
        if (z > zmax)
        {
            imax=i;
            zmax=z;
        }
        if (z < zmin)
        {
            imin=i;
            zmin=z;
        }
    }
 
    cout << "The farest point from zero is " << imax << endl;
    cout << "Its distance to (0,0) is " << zmax << endl;
 
    cout << "The nearest point from zero is " << imin << endl;
    cout << "Its distance to (0,0) is " << zmin << endl;
 
    // Åñëè æå ГЁГ±ГЄГ*ГІГј ГЇГ*ðû Г±Г*ìûõ áëèçêèõ ГЁ Г±Г*ìûõ Г¤Г*ëüГ*ГЁГµ,
    // ГІГ®:
 
    zmax=sqrt(double((x[0]-x[1])*(x[0]-x[1]) + (y[0]-y[1])*(y[0]-y[1]))); 
    zmin=zmax;  
    imin=0;
    jmin=0;
    imax=1;
    jmax=1;
 
    for (i=0; i<N-1; i++)
        for (j=i+1; j<N; j++)
        {
            z=sqrt(double((x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]))); 
            if (z > zmax)
            {
                imax=i;
                jmax=j;
                zmax=z;
            }
            if (z < zmin)
            {
                imin=i;
                jmin=j;
                zmin=z;
            }
        }
 
    cout << "The farest pair points are " << imax << "," << jmax <<endl;
    cout << "Distance is " << zmax << endl;
 
    cout << "The farest pair points are " << imin << "," << jmin <<endl;
    cout << "Distance is " << zmin << endl;
 
    delete x;
    delete y;
 
}
1
08.06.2013, 20:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2013, 20:08
Привет! Вот еще темы с ответами:

Правильно ли Эверест показывает вольтажи? - Блоки питания
Здравтвуйте! еверест тупит или это правда?

Не правильно показывает размер файла - C++
Написал программу которая должна показывать размер файла: #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using...

Помогите правильно вывести результаты - JavaScript
Здравствуйте. В JS не силен, прошу помощи! Стоит задача - вывести сообщения из mysql без перезагрузки страницы. У меня есть следующий...

Правильно ли показывает GPU-Z на Asus 550Ti - Видеокарты
Подскажите плиз, кто знает правильно ли работает видеокарта, вот смущает в показаниях GPU-Z один показатель, (см. скрин) вроде он быть...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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