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

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

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

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

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

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

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

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

Вывести элементы матрицы, расположенные в столбцах с нечетными номерами
1. Дана матрица размера MхN. Вывести ее элементы, расположенные в столбцах с...

Вывести элементы матрицы, расположенные в строках с четными номерами (2, 4, ...)
С++ Дана матрица размера M х N. Вывести ее элементы, расположенные в строках с...

15
co6ak
Кошковед
515 / 503 / 63
Регистрация: 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
17767 / 11792 / 2450
Регистрация: 24.12.2010
Сообщений: 23,714
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
Кошковед
515 / 503 / 63
Регистрация: 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
Кошковед
515 / 503 / 63
Регистрация: 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 / 6
Регистрация: 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
Кошковед
515 / 503 / 63
Регистрация: 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 / 6
Регистрация: 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
Кошковед
515 / 503 / 63
Регистрация: 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 / 6
Регистрация: 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
Кошковед
515 / 503 / 63
Регистрация: 12.04.2010
Сообщений: 1,392
29.11.2011, 17:52 #15
но этого не может быть. ведь этого не может быть вообще
0
M__A__K
47 / 47 / 6
Регистрация: 09.11.2010
Сообщений: 306
29.11.2011, 17:54 #16
DOLTRON, если не получается, выложите весь код
0
29.11.2011, 17:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 17:54
Привет! Вот еще темы с решениями:

Сохранить нулевые элементы матрицы, расположенные в шахматном порядке
Сохранить все нулевые элементы матрицы, размещенные в шахматном порядке,...

Вывести элементы матрицы, расположенные в строках с четными номерами
Дана матрица размера M х N. Вывести ее элементы, расположенные в строках с...

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

Поменять местами элементы матрицы, расположенные в верхней и нижней четвертях
В квадратной матрице поменять местами элементы, расположенные в верхней и...


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

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

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