1

Тема: Сортування бульбашкою

Не розумію у чому проблема.Чомусь при сортуванні деякі числа округляються до цілих.
Код(мова С):
[code=C++]
for(i = 0; i < N - 1; i++)
{
    for(j = 0; j < N - i - 1; j++)
    {
        if(Bdod[j + 1] > Bdod[j])
        {
            tmp = Bdod[j];
            Bdod[j] = Bdod[j + 1];
            Bdod[j + 1] = tmp;
        }
    }
}

for(i = 0; i < N - 1; i++)
{
    for(j = 0; j < N - i - 1; j++)
    {
        if(Bdod[j] > Bvid[j + 1])
        {
            tmp = Bvid[j];
            Bvid[j] = Bvid[j + 1];
            Bvid[j + 1] = tmp;
        }
    }
}
[/code]
Щиро дякую.
http://replace.org.ua/misc.php?action=pun_attachment&amp;item=1951&amp;download=0

Post's attachments

Firefox_Screenshot_2018-11-21T20-51-27.994Z.png 6.05 kb, 51 downloads since 2018-11-21 

2

Re: Сортування бульбашкою

Покажіть весь код, як ви об'являєте змінні?

3

Re: Сортування бульбашкою

Прихований текст
Chemist-i написав:

Покажіть весь код, як ви об'являєте змінні?

оголошуєте

4

Re: Сортування бульбашкою

FakiNyan написав:
Прихований текст
Chemist-i написав:

Покажіть весь код, як ви об'являєте змінні?

оголошуєте

Дякую.

Прихований текст

Нєт мнє прощєн'я

5

Re: Сортування бульбашкою

C99 дозволяє проголошувати змінні в блоках, це могло б врятувати від таких помилок.

6

Re: Сортування бульбашкою

Chemist-i написав:

Покажіть весь код, як ви об'являєте змінні?

Весь код:
[code=C++]
#include <stdio.h>

int main(void) {
    int N=8;
    int i, j, tmp;
    float B[16] = { 0.1, -1.3, 3.5, 4.8, -1.6, -3.2, 1.7, -3.9, -0.8, 6.3, 9.1, -5.6, 3.6, -7.8, 2.3, -9.2 };
    float Bdod[N];
    float Bvid[N];
    int x = 0;
    int y = 0;
    // Сортування по додатніх і від'ємних чисел
    for(int k = 0; k < 16; k++)
    {
        if(B[k] > 0)
        {
            Bdod[x] = B[k];
            x++;
        }
        if(B[k] < 0)
        {
            Bvid[y] = B[k];
            y++;
        }
    }
    // Сортування додатніх по спаданню   
    for(i = 0; i < N - 1; i++)
    {
        for(j = 0; j < N - i - 1; j++)
        {
            if(Bdod[j + 1] > Bdod[j])
            {
                tmp = Bdod[j];
                Bdod[j] = Bdod[j + 1];
                Bdod[j + 1] = tmp;
            }
        }
    }
    // Сортування від'ємних по зростанню   
    for(i = 0; i < N - 1; i++)
    {
        for(j = 0; j < N - i - 1; j++)
        {
            if(Bdod[j] > Bvid[j + 1])
            {
                tmp = Bvid[j];
                Bvid[j] = Bvid[j + 1];
                Bvid[j + 1] = tmp;
            }
        }
    }
[/code]

7

Re: Сортування бульбашкою

Змінну tmp зробіть float, а не int.

Подякували: koala, MeritT, taburyak, Chemist-i4

8

Re: Сортування бульбашкою

Arete написав:

Змінну tmp зробіть float, а не int.

Дякую. Просто врятував мене))