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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
DOLTRON
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
#1

Элементы расположенные по периметру матрицы. - C++

29.11.2011, 16:27. Просмотров 1409. Ответов 15
Метки нет (Все метки)

подскажите,как составить цикл для нахождения элементов по периметру через for.с++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 16:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Элементы расположенные по периметру матрицы. (C++):

Изменить все элементы, расположенные по периметру матрицы, на максимальный - C++
Дан двумерный массив А, что составляется с m строк и n столбцов Составить программу, которая все элементы, расположенные по периметру...

Заполнить нулями элементы квадратной матрицы, расположенными по её периметру - C++
Заполнить нулями элементы квадратной матрицы, расположенными по её периметру. кто может помочь написать? Срочно нужно сдать.

Заполнить нулями элементы квадратной матрицы, расположенными по её периметру - C++
Заполнить нулями элементы квадратной матрицы, расположенными по её периметру. Нужно написать, используя функции. Кто может помочь?

Матрицы. Отрицательные элементы матрицы, расположенные выше главной диагонали, заменить на квадраты их значений - C++
Отрицательные элементы матрицы (n=6; m=6), расположенные выше главной диагонали, заменить на квадраты их значений. Найти максимальный среди...

Вывести элементы матрицы, расположенные в строках с четными номерами - C++
Здравствуйте! Помогите написать 3 программмы на C++ на задачи с двумерными массивами 1. Дана матрица размера M x N. Вывести ее...

Вывести элементы матрицы, расположенные в столбцах с нечетными номерами - C++
1. Дана матрица размера MхN. Вывести ее элементы, расположенные в столбцах с нечетными номерами (1, 3, . . .). Вывод элементов произво- ...

15
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
29.11.2011, 16:33 #2
C++
1
2
3
4
5
for ( int i = 0; i < N; i ++ )
{
         for(  int j = 0; j < M; j += M-1 )
         {}  
}
1
Байт
Эксперт C
16347 / 10623 / 1590
Регистрация: 24.12.2010
Сообщений: 20,272
29.11.2011, 16:39 #3
C++
1
2
3
4
5
for (i=0; i<N; i++) {
  for(j=0; j<M; j++) {
    if (i==0 || j==0 || i==N-1 || j==M-1) cout << "Yes";
  }
}
Не самый эффективный код, но работать должон
1
DOLTRON
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
29.11.2011, 16:50  [ТС] #4
где N - это столбцы?

Добавлено через 1 минуту
а исправил-теперь понял)спасибо)

Добавлено через 2 минуты
C++
1
2
3
4
5
for(i = 0; i < n; i ++ )
{
         for(j = 0; j < m; j += m-1 )
         {s=s+=matr[i][j];}  
}
почему не правильно считает?
0
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
29.11.2011, 16:55 #5
Цитата Сообщение от DOLTRON Посмотреть сообщение
for(j = 0; j < m; j += m-1 )
{s=s+=matr[i][j];}
ибо это писец

s+= matr[i][j];
1
DOLTRON
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
29.11.2011, 17:04  [ТС] #6
считает не правильно все равно...
0
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
29.11.2011, 17:16 #7
на тебе деревянный вариант
C++
1
2
3
4
5
    for ( int i = 0; i < N; i ++ )
        for ( int j = 0; j < M; )
            if ( i == 0 || i == N-1 ) { s+= matrix[i][j]; ; }
            else
                if ( j == 0 || j == M-1 ) { s+= matrix[i][j]; }
1
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
29.11.2011, 17:21 #8
C++
1
2
3
4
5
6
7
8
9
10
11
for ( int i = 0; i < N; ++i )
{
    s += matrix[i][0];
    s += matrix[i][M - 1];
}
 
for ( int j = 1; j < M - 1; ++j )
{
    s += matrix[0][j];
    s += matrix[N - 1][j];
}
2
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
29.11.2011, 17:23 #9
Цитата Сообщение от M__A__K Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
for ( int i = 0; i < N; ++i )
{
    s += matrix[i][0];
    s += matrix[i][M - 1];
}
 
for ( int j = 1; j < M - 1; ++j )
{
    s += matrix[0][j];
    s += matrix[N - 1][j];
}
углы просуммируются дважды
1
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
29.11.2011, 17:26 #10
Цитата Сообщение от co6ak Посмотреть сообщение
углы просуммируются дважды
второй цикл проходит не с 0 до M - 1, а с 1 до M - 2. так что не дважды

а в вашем первом алгоритме не суммируются элементы первой строки и последней, кроме угловых
1
DOLTRON
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
29.11.2011, 17:38  [ТС] #11
сори ребят,сразу не сказал,что матрица не квадратная.По-этому и не робит.Как для не квадратной?
0
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
29.11.2011, 17:40 #12
C++
1
2
3
4
5
6
7
    
int s = 0;
for ( int i = 0; i < N; i ++ )
        for ( int j = 0; j < M; j++)
            if ( i == 0 || i == N-1 ) { s+= matrix[i][j]; ; }
            else
                if ( j == 0 || j == M-1 ) { s+= matrix[i][j]; }
во. очепятка была. сумму обнуляешь хоть?
0
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
29.11.2011, 17:40 #13
Цитата Сообщение от DOLTRON Посмотреть сообщение
сори ребят,сразу не сказал,что матрица не квадратная.По-этому и не робит.Как для не квадратной?
также
N - количесто строк
M - количество столбцов

Цитата Сообщение от co6ak Посмотреть сообщение
сумму обнуляешь хоть
+1
0
DOLTRON
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 13
29.11.2011, 17:49  [ТС] #14
во. очепятка была. сумму обнуляешь хоть?
Конечно

Добавлено через 5 минут
для квадратной все правильно,иначе нет.
0
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
29.11.2011, 17:52 #15
но этого не может быть. ведь этого не может быть вообще
0
29.11.2011, 17:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 17:52
Привет! Вот еще темы с ответами:

Сохранить нулевые элементы матрицы, расположенные в шахматном порядке - C++
Сохранить все нулевые элементы матрицы, размещенные в шахматном порядке, начиная со 2-го элемента 1-го рядка

Поменять местами элементы матрицы, расположенные в верхней и нижней четвертях - C++
В квадратной матрице поменять местами элементы, расположенные в верхней и нижней четвертях, ограниченных главной и побочной диагоналями (за...

Заменить нулями элементы матрицы, расположенные слева и сверху от максимального - C++
Дан массив х: array of integer, где 0 &lt; n, m &lt; 50. Найти в нем максимальный элемент МАХ и заменить нулями элементы массива, расположенные...

Поменять местами элементы матрицы, расположенные симметрично относительно побочной диагонали - C++
Поменять местами элементы матрицы, расположенные симметрично относительно побочной диагонали


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru