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

Найти первый столбец в котором нет отрицательных элементов, отсортировать элементы столбцов по убыванию

18.11.2014, 19:54. Показов 1714. Ответов 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <stdio.h>
#include <conio.h>
#include <iostream>
 
void main ()
 
{
    const int str=5;
        const int stolb=4;
        int i,j;
    int massiv[str][stolb];
 
for (int a = 0; a <str; a++)
   {
        for (int b = 0; b <stolb; b++)
      {
                  massiv[a][b]=0 + rand() % 20;                 
        } 
   }
 
for (i=0; i<str; ++i)
{
for (j=0; j<stolb; ++j)
printf("massiv %d  ",massiv[i][j]);
printf ("\n");
}
 
printf("\n\n");
 
int kolon = 0;
    bool flag;
 
    for (j = 0; j < stolb; j++)
    {                                            // здесь ищем колонки без отрицательных чисел
        for (i = 0; i < str-1; i++)
        {
            if (massiv[i][j] >= 0)                         
              {
                  flag = true;
                continue;
              }
            else
            {
                
                flag = false;
               break;
 
            }
        }
            if (flag)
           kolon=i+1 ;
              
    }
 
if (flag)
 
printf("Nomer pervogo izstolbcov ne soderzh ni odnogo otric elementa:%d\n", kolon);
    else
        printf("All columns contains negative numbers.\n\n\n");
 
int tmp;
 for (j = 0; j < stolb; j++)      // мотаю цикл столбцов             //сортировка по столбцам.строки не трогаю
        for (i = 0; i < str-1; i++)                      // мотаю цикл строк
            for (int k = i; k < str; k++)                        // сортирующий цикл
                if (massiv[i][j] > massiv[k][j])
                {
                   tmp = massiv[i][j];                         // если одно число больше следующего 
                   massiv[i][j] = massiv[k][j];                 // меняю местами
                   massiv[k][j] = tmp;                       
                }
for (i=0; i<str; ++i)
{                                                     // вывод отсортированного массива
for (j=0; j<stolb; ++j)
printf("massiv %d  ",massiv[i][j]);
printf ("\n");
}
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2014, 19:54
Ответы с готовыми решениями:

В двумерном массиве найти первый столбец, в котором нет элементов кратных числу n
определяет первый столбец, в котором нет элементов кратных заданному числу n

Найти первый столбец матрицы не содержащий отрицательных элементов
/*ищем первый столбец не содержащий отриц. элементов и выводим № этого столбца. Но я не могу понять как сделать так, чтобы если все...

Найти в матрице первый столбец, все элементы которого отрицательны и среднее арифметическое этих столбцов
Вычесть полученное из всех элементов матрицы

3
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
18.11.2014, 20:03
ну для начала
код в плюсах
а ветка про СИ

Добавлено через 1 минуту
Цитата Сообщение от Monkey-hpster Посмотреть сообщение
// здесь ищем колонки без отрицательных чисел
а смысл???
Цитата Сообщение от Monkey-hpster Посмотреть сообщение
massiv[a][b]=0 + rand() % 20;
все положительные
0
62 / 62 / 53
Регистрация: 04.10.2013
Сообщений: 264
18.11.2014, 20:47
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
#include <stdio.h>
#include <conio.h>
#include <iostream>
 
void main ()
 
{
    const int str=5;
        const int stolb=4;
        int i,j;
    int massiv[str][stolb];
 
for (int a = 0; a <str; a++)
   {
        for (int b = 0; b <stolb; b++)
        {
                  scanf_s("%d", &massiv[a][b]);                 
        } 
   }
 
for (i=0; i<str; ++i)
{
for (j=0; j<stolb; ++j)
printf("massiv %d  ",massiv[i][j]);
printf ("\n");
}
 
printf("\n\n");
 
int kolon = 0;
    bool flag;
 int k=0;
    for (j = 0; j < stolb; j++)
    {                                            // здесь ищем колонки без отрицательных чисел
        for (i = 0; i < str-1; i++)
        {
            if (massiv[i][j] >= 0)                         
              {
                  flag = true;
                  continue;
              }
            else
            {                
                flag = false;
                break; 
            }
       }
            if ((flag)&&(k==0))
            {
                kolon=j+1;   
                k++;                
            }
    }
 
if (flag)
 
printf("Nomer pervogo iz stolbcov ne soderzh ni odnogo otric elementa: %d\n", kolon);
    else
        printf("All columns contains negative numbers.\n\n\n");
 
 
 
 
int tmp;
 for (j = 0; j < stolb; j++)      // мотаю цикл столбцов             //сортировка по столбцам.строки не трогаю
        for (i = 0; i < str-1; i++)                      // мотаю цикл строк
            for (int k = i; k < str; k++)                        // сортирующий цикл
                if (massiv[i][j] > massiv[k][j])
                {
                   tmp = massiv[i][j];                         // если одно число больше следующего 
                   massiv[i][j] = massiv[k][j];                 // меняю местами
                   massiv[k][j] = tmp;                       
                }
for (i=0; i<str; ++i)
{                                                     // вывод отсортированного массива
for (j=0; j<stolb; ++j)
printf("massiv %d  ",massiv[i][j]);
printf ("\n");
}
_getch();
 
}
Лучше вводить с клавиатуры, и заранее написать на листочке какой-нибудь пример, который 100% будет работать.

Добавлено через 7 минут
C
1
2
3
4
5
if ((flag)&&(k==0))
            {
                kolon=j+1;   
                k++;                
            }
во-первых Вы в kolon записывали значение строк i;
во-вторых break; выходит только из внутреннего for; и поэтому в
C
1
if (flag) kolon=j+1;
после выполнения еще одного витка в for (j = 0; j < stolb; j++) выполняется еще раз
C
1
if (flag) kolon=j+1;
тем самым выдавая не верный результат. Что бы этого не было нужно сделать ключ k=0; который будет отвечать за вход в
C
1
if((flag)&&(k==0)
если 0 значит еще не было столбца с положительными элементами, а если уже был такой столбце, то k уже изменилось на k=k+1;
C
1
2
3
4
5
if ((flag)&&(k==0))
            {
                kolon=j+1;   
                k++;                
            }
и оно отлично от 0. и поэтому не пройдет условный цикл if. Как-то так
0
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 5
19.11.2014, 20:31  [ТС]
Код в СИ) да вы правы, что все положительные здесь (massiv[a][b]=0 + rand() % 20 и по сути должно выдавать 1ый столбец, а выдает как сказал deepz совсем иное, я просто уже запутался думал хоть тут помогут разобраться.
поэтому и спросил у вас)) я примерно понял в чем ошибка, но как оформить нормально не смекну до сих пор.

Добавлено через 9 минут
deepz, простите, не заметил что вы разложили все так по полочкам идеально. Я слету глянул, и показалось, что вы просто показали мне мои ошибки)) спасибо вам, буду вникать и разбираться, что бы таких вопросов не возникало))

Добавлено через 1 час 6 минут
Слушайте, а не прокатывает когда 1ый столбец имеет отрицательные элементы а следующий нет. и тогда не выдает 2ой. а просто говорит что все столбцы отрицательны(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2014, 20:31
Помогаю со студенческими работами здесь

Упорядочить элементы столбцов матрицы по убыванию, а столбцы по убыванию модуля произведения четных элементов столбцов
На контрольной дали задачу. Не знаю как написать. Помогите!:help: Дана матрица действительных чисел. Упорядочить элементы столбцов по...

Найти в матрице последний столбец, в котором положительных элементов больше чем отрицательных
прошу помощи=) нужно найти в матрице mxn последний столбец в котором положительных элементов больше чем отрицательных и заменить все его...

В матрице найти первый столбец, содержащий максимальное количество отрицательных элементов
В матрице найти первый столбец, содержащий максимальное количество отрицательных элементов, и умножить его как вектор-строку на матрицу .

В матрице найти количество чётных элементов. Вывести на печать первый столбец массива, отсортированный по убыванию
В массиве А найти количество чётных элементов. Вывести на печать первый столбец массива, отсортированный по убыванию.

Поменять местами первый столбец с номером один и первый из столбцов, содержащий только положительные элементы.
Дана матрица размера 5 x 10. Поменять местами первый столбец с номером один и первый из столбцов, содержащий только положительные элементы.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru