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

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

08.01.2010, 16:31. Показов 3344. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru