Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
DOLTRON
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
02.10.2011, 16:01     Найти минимальный положительный элемент кратный 3м под побочной диагональю #1
Дана матрица 12х12,найти минимальный положительный элемент кратный 3м,под побочной диагональю.Можно изменить размер,т.к. нужно заполнить массив в ручную.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2011, 16:01     Найти минимальный положительный элемент кратный 3м под побочной диагональю
Посмотрите здесь:

Найти минимальный положительный элемент в массиве вещественных чисел. C++
Найти наибольший элемент среди элементов матрицы, расположенных над главной диагональю и под боковой диагональю C++
C++ Найти максимальный отрицательный и минимальный положительный элемент и поменять их местами
В матрице найти наименьший элемент в каждом столбце под побочной диагональю и подсчитать сумму этих элементов C++
Среди элементов ниже побочной диагонали, найти количество меньших, чем любой элемент над побочной диагональю C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.10.2011, 17:52     Найти минимальный положительный элемент кратный 3м под побочной диагональю #2
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 - не положительное число.
DOLTRON
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
02.10.2011, 18:49  [ТС]     Найти минимальный положительный элемент кратный 3м под побочной диагональю #3
слушай,а по проще ни как написать нельзя?
я просто неделя, как начал изучать с++,и поэтому дуб дубом.
вот что я написал,выдает 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;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.10.2011, 19:16     Найти минимальный положительный элемент кратный 3м под побочной диагональю #4
Ну, вы ошибки напишите.
C++
1
for (j = 4 - i; j < 4; ++j)
Смысла так писать я не вижу, поскольку i у вас уже не изменяется. Да даже если бы и изменялся. Только сами запутаетесь.
Собственно, алгоритм нахождения минимального элемента в моем коде находится в строках ##24-25. Можете сделать 2 цикла по всему массиву, а можете только ниже побочной диагонали. Тогда еще надо будет изменить условие if-а, ибо первая проверка станет ни к чему.
И на будущее: при задавании вопроса указывайте язык разработки. Поскольку мой кол не на C++, а на Си.

Добавлено через 1 минуту
Ну и собственно, у вас вывод массива в cout неверный. Вывод через cout и printf различаются.
DOLTRON
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
02.10.2011, 19:24  [ТС]     Найти минимальный положительный элемент кратный 3м под побочной диагональю #5
мне подсказали,я переделал,вроде работает
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";
 
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.10.2011, 19:35     Найти минимальный положительный элемент кратный 3м под побочной диагональю #6
Маленький совет(если не увлекаетесь программированием на плюсах, а пишете программу, чтобы сдать преподу и успокоиться, то можете дальше не читать. Без обид.)
Главная функция в плюсах пишется так
C++
1
int main()
Существуют еще другие вариации, но они все должны быть int - это вам любой адекватный компилятор скажет.
cin и cout входят в пространство имен std. Так что вам нужно писать
C++
1
2
3
std::cout << //аналогично std::cin и прочие
//либо непосредственно перед функцией
using namespace std;
Большинство не одобряют using namespace std, предпочитают писать std::. Лично я уже просто привык писать std::. Пока не сталкивался с таким кодом, в котором это имело бы принципиальное значение.
Используйте форматированием кода. Вам самим проще читать будет, да и людям на форуме тоже.
DOLTRON
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
02.10.2011, 19:54  [ТС]     Найти минимальный положительный элемент кратный 3м под побочной диагональю #7
спасибо за информацию)просто понимаете,я пытаюсь писать в рамках того что мы изучили,а изучили мы не много,пока.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.10.2011, 20:08     Найти минимальный положительный элемент кратный 3м под побочной диагональю #8
Пока что я нашел у вас один возможный недочет. Попробуйте убрать из массива все числа кратные 3-м. Если не ошибаюсь, вам программа выдаст, что минимальный элемент, кратный трем будет равен 1000.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2011, 12:51     Найти минимальный положительный элемент кратный 3м под побочной диагональю
Еще ссылки по теме:

Как найти минимальный элемент над побочной диагональю? C++
C++ В массиве найти минимальный положительный и максимально отрицательный элемент и вычисляет их следующее значени
C++ Найти максимальный элемент, расположенный над побочной диагональю матрицы

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

Или воспользуйтесь поиском по форуму:
DOLTRON
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
05.10.2011, 12:51  [ТС]     Найти минимальный положительный элемент кратный 3м под побочной диагональю #9
точно,спасибо)совсем не учел этот момент)
Yandex
Объявления
05.10.2011, 12:51     Найти минимальный положительный элемент кратный 3м под побочной диагональю
Ответ Создать тему
Опции темы

Текущее время: 14:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru