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

Найти минимальный положительный элемент кратный 3м под побочной диагональю

02.10.2011, 16:01. Показов 1850. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана матрица 12х12,найти минимальный положительный элемент кратный 3м,под побочной диагональю.Можно изменить размер,т.к. нужно заполнить массив в ручную.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.10.2011, 16:01
Ответы с готовыми решениями:

Как найти минимальный элемент над побочной диагональю?
Вот код, но почему то выводит просто второй элемент последней строки, не могу понять в чем тут дело. #include <iostream> ...

Найти наибольший и наименьший элемент под побочной диагональю матрицы
Помогите решить, пожалуйста. Дано натуральное число n. Сформировать произвольную матрицу размерностью n×n. Найти наибольший и...

В матрице найти наименьший элемент в каждом столбце под побочной диагональю и подсчитать сумму этих элементов
Перечитал целую кучу тем на киберфоруме но так и не нашел подходящий способ решить мою задачку. Очень расчитываю на вашу помощь, просто уже...

8
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.10.2011, 17:52
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
#include <conio.h>
 
int main(void)
{
    srand(time(0));
    int **arr, n, i, j, min = -1;
 
    printf("Enter the size of array:\n");
    scanf("%d", &n);
    
    printf("Source array:\n");
    arr = (int**) malloc (sizeof(int*) * n);
    for(i = 0; i < n; ++i)
    {
        arr[i] = (int*) malloc (sizeof(int) * n);
        for(j = 0; j < n; ++j)
        {
            arr[i][j] = rand() % 21 - 10;
            printf("%d\t", arr[i][j]);
            if((i + j >= n) && (arr[i][j] > 0) && ((arr[i][j] < min) || (min == -1)) && (arr[i][j] % 3 == 0))
                min = arr[i][j];
        }
        printf("\n");
    }
 
    printf("===========\n");
    if(min == -1)
        printf("No minimal element");
    else
        printf("min -> %d", min);
 
    getch();
    return 0;
}
Тестируйте. Ручное заполнение массива сами прикрутите.
Подразумевается, что 0 - не положительное число.
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
02.10.2011, 18:49  [ТС]
слушай,а по проще ни как написать нельзя?
я просто неделя, как начал изучать с++,и поэтому дуб дубом.
вот что я написал,выдает 6 ошибок,но все же,посмотри хоть приближенно правильно?
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
#include <iostream.h>
void main ()
{
int a,min,i,j,n;
int matr[5][5]=
    {
        {2,4,3,5,7},
        {0,5,9,4,7},
        {1,5,7,8,3},
        {4,6,8,2,5},
        {2,4,7,8,1}
    };
 
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
cout<<"%d ",matr[i][j]
cout<<"\n ";
}
min=matr[4][4];
for (j = 4 - i; j < 4; ++j) 
{
          if (min > matr[i][j])
              min = matr[i][j];
    matr[i][j] % 3==0 min=a
      }  
   cout<<"result: %d\n",a;
}
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.10.2011, 19:16
Ну, вы ошибки напишите.
C++
1
for (j = 4 - i; j < 4; ++j)
Смысла так писать я не вижу, поскольку i у вас уже не изменяется. Да даже если бы и изменялся. Только сами запутаетесь.
Собственно, алгоритм нахождения минимального элемента в моем коде находится в строках ##24-25. Можете сделать 2 цикла по всему массиву, а можете только ниже побочной диагонали. Тогда еще надо будет изменить условие if-а, ибо первая проверка станет ни к чему.
И на будущее: при задавании вопроса указывайте язык разработки. Поскольку мой кол не на C++, а на Си.

Добавлено через 1 минуту
Ну и собственно, у вас вывод массива в cout неверный. Вывод через cout и printf различаются.
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
02.10.2011, 19:24  [ТС]
мне подсказали,я переделал,вроде работает
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
#include <iostream.h>
void main ()
{
int num,p_num,p_j,m,i,j,n;
m=5; n=5;
int matr[5][5]=
{
{2,4,3,5,7},
{0,5,9,4,7},
{1,5,7,8,3},
{4,6,8,2,5},
{2,6,7,-3,1}
};
 
for (i=0; i<m; i++)
{
for (j=0; j<n; j++)
{
cout<<matr[i][j]<<" ";
}
cout<<"\n";
}
 
num=1000;
for (i=1; i<m; i++)
{
p_j=n-i;
p_num=1001;
for (j=p_j; j<n; j++)
{
if (matr[i][j]%3==0 && matr[i][j]>0) p_num=matr[i][j];
if (p_num<num) num=p_num;
 
}
 
}
cout<<"\nZnachenie -> "<<num;
cout<<"\n";
 
}
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.10.2011, 19:35
Маленький совет(если не увлекаетесь программированием на плюсах, а пишете программу, чтобы сдать преподу и успокоиться, то можете дальше не читать. Без обид.)
Главная функция в плюсах пишется так
C++
1
int main()
Существуют еще другие вариации, но они все должны быть int - это вам любой адекватный компилятор скажет.
cin и cout входят в пространство имен std. Так что вам нужно писать
C++
1
2
3
std::cout << //аналогично std::cin и прочие
//либо непосредственно перед функцией
using namespace std;
Большинство не одобряют using namespace std, предпочитают писать std::. Лично я уже просто привык писать std::. Пока не сталкивался с таким кодом, в котором это имело бы принципиальное значение.
Используйте форматированием кода. Вам самим проще читать будет, да и людям на форуме тоже.
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
02.10.2011, 19:54  [ТС]
спасибо за информацию)просто понимаете,я пытаюсь писать в рамках того что мы изучили,а изучили мы не много,пока.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.10.2011, 20:08
Пока что я нашел у вас один возможный недочет. Попробуйте убрать из массива все числа кратные 3-м. Если не ошибаюсь, вам программа выдаст, что минимальный элемент, кратный трем будет равен 1000.
1
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
05.10.2011, 12:51  [ТС]
точно,спасибо)совсем не учел этот момент)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2011, 12:51
Помогаю со студенческими работами здесь

Среди элементов ниже побочной диагонали, найти количество меньших, чем любой элемент над побочной диагональю
Совсем не могу понять, на что ругается компилятор и что здесь не так. Вот задача: Дана матрица размером NxN. Среди элементов,...

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

Найти в массиве минимальный элемент кратный 5 и вывести его. Использовать С++
Помогите, пожалуйста. Есть программа поиска элементов кратных 5 и удаления из массива элементов кратных 5. Как ее переделать чтобы она...

Найти сумму отрицательных элементов под побочной диагональю
В данной действительной квадратной матрице порядка N*N.Найти : сумму отрицательных элементов под побочной диагональю.

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru