Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 08.01.2010
Сообщений: 13

Сортировка отрицательных чисел нечетных строк

08.01.2010, 16:31. Показов 3284. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я никак не могу понять, как провести сортировку по возрастанию отрицательных чисел в нечетных строках матрицы методом пузырька.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2010, 16:31
Ответы с готовыми решениями:

Отсортировать по сумме нечетных и отрицательных элементов строк матрицы по возрастанию
есть код #include <windows.h> #include <iostream> #include <cstdlib> #include <ctime> #include <iomanip> #include <fstream>...

Найти минимальное из нечетных отрицательных чисел
Написать программу , которая выводит 4 целых числа a,b,c,d(положительных и отрицательных) и находит среди них минимальное из печатных...

Сортировка четных строк матрицы по возрастанию, а нечетных - по убыванию
Здравствуйте! Есть задача: отсортировать чётные строки массива А по возрастанию, а нечётные по убыванию. Написал следующий код: ...

28
25 / 25 / 3
Регистрация: 27.12.2009
Сообщений: 82
08.01.2010, 22:13
Студворк — интернет-сервис помощи студентам
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
for (i=0;i<razmer;i+=2)
   for(j=0;j<razmer;j++)
{
{
  if (a[i][j]<0)
  {  // здесь еще скобки нужны были
{          
d[k]=a[i][j];
  k++;
}
}
for(b=0;b<k-1;b++)
{
for (p=0; p<k; p++)
if (d[p]>d[p+1])
{
x=d[p];
d[p]=d[p+1];
d[p+1]=x;
}
}
p=0;
for(j=0;j<razmer;j++)
 if (a[i][j]<0)
{a[i][j]=d[p]
p++;
}
}
} // и в конце
1
0 / 0 / 0
Регистрация: 08.01.2010
Сообщений: 13
08.01.2010, 22:20  [ТС]
а если всё сделать проще,правда я ещё не додумал
но чонить типа:

C
1
2
3
4
5
6
7
8
9
for (k=0; k<razmer-1; k++)
    {
        for (i=0; i<razmer-1-k; i=i+2)
        {
            for (j=0; j<razmer-1-k; j++)
            {
                
                if (a[0][0]>a[i][j] && a[0][0]<0 && a[i][j]<0)
                {
дальше я не додумал ещё)

Добавлено через 4 минуты
точнее что-нибудь типо:
C
1
2
3
4
5
6
7
8
9
10
11
12
for (k=0; k<razmer-1; k++)
    {
        for (i=0; i<razmer-1-k; i=i+2)
        {
            for (j=0; j<razmer-1; j++)
            {
                
                if (a[0][0]>a[i][j] && a[0][0]<0 && a[i][j]<0)
                {
                    tmp=a[i][j];
                    a[i][j]=a[i][j+1];
                    a[i][j+1]=tmp;
вот так проще и "пытается сортировать" в четных строках.правда чёто неправильно
0
25 / 25 / 3
Регистрация: 27.12.2009
Сообщений: 82
08.01.2010, 22:21
1
0 / 0 / 0
Регистрация: 08.01.2010
Сообщений: 13
08.01.2010, 22:57  [ТС]
почему нет? щас ещё подумаю и мб получится.

Добавлено через 33 минуты
в общем,спасибо за помощь)
завтра ещё попытаюсь чонить придумать.
0
25 / 25 / 3
Регистрация: 27.12.2009
Сообщений: 82
09.01.2010, 00:10
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
#include <iostream>
using namespace std;
int main(void)
{
    double a[20][20],x=0,d[20];
    int i,j,razmer,k=0,p=0,b;;
 
     printf("vvedite razmer matrici (maximum 20):\n");
       cin>>razmer;
    for (i=0; i<razmer; i++)
    {
        for (j=0; j<razmer; j++)
        
          cin>> a[i][j];
    }
   for(i=0; i<razmer; i++)
   {
       for (j=0; j<razmer; j++)
       
          cout<< a[i][j]<<"  ";
       
       printf("\n");
    }
for (i=0;i<razmer;i+=2)
{
    for(j=0;j<razmer;j++)
{
  if (a[i][j]<0)
      {            
d[k]=a[i][j];
  k++; 
}
    }
for(b=0;b<k-1;b++)
{
for (p=0; p<k-1; p++)
if (d[p]>d[p+1])
{
x=d[p];
d[p]=d[p+1];
d[p+1]=x;
}
}
p=0;
k=0;
for(j=0;j<razmer;j++)
 if (a[i][j]<0)
{a[i][j]=d[p];
p++;
}
}
   
    printf ("\n Rezultat: \n");
    for(i=0; i<razmer; i++)
    {
        for (j=0; j<razmer; j++)
        
            printf("%10.2lf", a[i][j]);
 
        
        printf("\n");
    }
   return 0;
}
Полностью рабочий код, ошибки были смешные, но я их так не люблю искать. Надо учиться
1
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
09.01.2010, 05:28
Код Tani проверил, полностью рабочий. Но есть одно но:
Цитата Сообщение от Stuzzy Посмотреть сообщение
Я никак не могу понять, как провести сортировку по возрастанию отрицательных чисел в нечетных строках матрицы методом пузырька
Если все-таки в нечетных (нумерация строк начинается с нуля), то строку 24 заменить на :
C++
1
for (i=1;i<razmer;i+=2)
1
25 / 25 / 3
Регистрация: 27.12.2009
Сообщений: 82
09.01.2010, 06:32
Спасибо, но я воспринимаю задание, что нечетные строки все-таки для пользователя Хотя
Stuzzy мне писал про четные строки в своей программе, когда применял мою выборку. Ну значит пусть исправляет
1
0 / 0 / 0
Регистрация: 08.01.2010
Сообщений: 13
09.01.2010, 16:11  [ТС]
Первая строка для нас является ЧЕТНОЙ,тк её номер 0.
В общем,я всё сделал намного проще,чем написали вы
сама сортировка выглядит вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    for (k=0; k<razmer-1; k++)
    {
        for (j=0; j<razmer; j++)
        {
             for (i=0; i<razmer; i=i+2)
             {
                if (a[i][j]>a[i][j+1] && a[i][j+1]<0)
                {
                    tmp=a[i][j];
                    a[i][j]=a[i][j+1];
                    a[i][j+1]=tmp;
                }
            }
        }
    }
Вся программа вот так:
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
#include <stdio.h>
#include <conio.h>
void main()
{
    FILE *fw,*fr;
    double a[20][20],tmp;
    int i,j,razmer,k;
    fw=fopen("log.txt","w");
    //zadaetsya razmer
    do
    {
        printf("vvedite razmer matrici (maximum 20):\n");
        scanf("%d",&razmer);
    }
    while (razmer>20 || razmer<1);
    printf("\n");
    fr=fopen("matrix 5na5.txt","r");
    //vvod matrici iz file'a
    for (i=0; i<razmer; i++)
    {
        for (j=0; j<razmer; j++)
        {
            fscanf (fr, "%lf", &a[i][j]);
        }
    }
    fclose(fr);
    //vyvod matrici v file 
    printf ("\n Matrix: \n");
    fprintf (fw,"Matrix: \n");
    for(i=0; i<razmer; i++)
    {
        for (j=0; j<razmer; j++)
        {
            printf("%10.0lf", a[i][j]);
            fprintf(fw, "%10.0lf" , a[i][j]);
        }
        printf("\n");
        fprintf(fw, "\n");
    }
    //sortirovka
    
    for (k=0; k<razmer-1; k++)
    {
        for (j=0; j<razmer; j++)
        {
             for (i=0; i<razmer; i=i+2)
             {
                if (a[i][j]>a[i][j+1] && a[i][j+1]<0)
                {
                    tmp=a[i][j];
                    a[i][j]=a[i][j+1];
                    a[i][j+1]=tmp;
                }
            }
        }
    }
 
 
 
    //vivod otsortirovannogo massiva
    
    printf ("\n otsortirovannyi massiv: \n");
    fprintf (fw,"otsortirovanniy massiv: \n");
    for(i=0; i<razmer; i++)
    {
        for (j=0; j<razmer; j++)
        {
            printf("%10.0lf", a[i][j]);
            fprintf(fw, "%10.0lf" , a[i][j]);
        }
        printf("\n");
        fprintf(fw, "\n");
    }
    getch();
}
0
25 / 25 / 3
Регистрация: 27.12.2009
Сообщений: 82
09.01.2010, 17:40
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Если все-таки в нечетных (нумерация строк начинается с нуля), то строку 24 заменить на :
Код C++
1
for (i=1;i<razmer;i+=2)
И твоя программа работает? Я вот сразу вижу, что она будет менять положительные элементы с отрицательными, хотя сортировать нужно только отрицательные
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.01.2010, 17:40
Помогаю со студенческими работами здесь

Найти количество нечетных отрицательных чисел в списке
Помогите сделать из такого кода структуру данных в виде однонаправленного списка #include &quot;iostream&quot; #include...

Подсчет количества, суммы и произведения нечетных отрицательных чисел
помогите сделать подсчет количества, суммы и произведения нечетных отрицательных чисел

Провести сортировку по возрастанию отрицательных чисел в нечетных строках
Условие задачи. Дан целый массив максимальной размерности 20*20. Провести сортировку по возрастанию отрицательных чисел в нечетных...

Найти разность произведения нечетных чисел 3-ей строки и произведения отрицательных чисел 1-го столбца матрицы
Найти разность произведения нечетных чисел 3-ей строки и произведения отрицательных чисел 1-го столбца матрицы В(4,4).

Проверить, что произведение отрицательных чисел массива больше, чем произведение нечетных чисел
очередной раз, помогите пожалуйста Дан одномерный массив А, состоящий из целых чи¬сел. Если произведение отрицательных чисел массива...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru