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

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

Войти
Регистрация
Восстановить пароль
 
Eddwardd
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 53
#1

Масив - C++

20.05.2010, 19:30. Просмотров 454. Ответов 9
Метки нет (Все метки)

Дана матрица N*M.Найти сумму елментов черной области.(Обозначена звездочками)
Код
|*****|
| *** |
|  *  |
| *** |
|*****|
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2010, 19:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Масив (C++):

Динамический масив: записать в масив все делители числа n - C++
Нужно записать в масив все делители числа n програма запускается но видает ошибку доступа к памяти... помогите разобраться #include...

Масив на 18 действ. Упорядочить по возростанию масив - C++
Ребята помогите пожалуйста с С++ Builder 1.Масив на 18 действ. Упорядочить по возростанию масив 2.Масив на 18 действ. Вычислить...

масив - C++
всем привет! очень нужна ваша помощь. 1) нужно заполнить двухмерную матрицу нулями над главной диагональю. 2) найти номер первого рядка...

масив - C++
господа програмисты как записать в масив все числа введённые с клавиатуры и показать на экране

Масив - C++
B заданной последовательности различных чисел a(1), a(2), … a (2n+1). Найти элемент a(m) такой, что множества L = {a(k): a(k) < a(m)} и...

Масив - C++
Здраствуйте у меня вопрос по массиву. Вот например мы вводим масив ну так скажем mas масив целочисельный как найти вот номер парных...

9
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
20.05.2010, 19:35 #2
по какой формле определяется черная область?
0
Eddwardd
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 53
20.05.2010, 19:42  [ТС] #3
11111
01110
00100
01110
11111
Найти суму елементов, которые входят в область, которая обозначена цифрой 1.
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
20.05.2010, 19:58 #4
ну это похоже для массива N*N

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
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
const int N = 5;
 
int main(){
  srand( time(NULL) );
  int nArr[N][N];
  for( int i=0;i<N;++i ){
    for( int j=0;j<N;++j ){
     nArr[i][j] = rand() % 100 - 50;
    }
  }
  int nSum = 0, nRange = N/2+N%2;
  for( int i=0;i<nRange;++i ){
    for( int j=0;j<N;++j ){
      nSum+= nArr[i][j];
    }
  }
  for( int i=nRange;i<N;++i ){
    for( int j=0;j<N;++j ){
      nSum+= nArr[i][j];
    }
  }
  cout << nSum;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using namespace std;
 
const int N = 30;
 
int main(){
  int nArr[N][N];
  for( int i=0;i<N/2+N%2;++i ){
    for( int j=0;j<N;++j ){
      cout << ( (i<=j && i<=abs(N-1-j))?1:0 ) << " ";
    }
    cout << endl;
  }
  for( int i=N/2+N%2;i<N;++i ){
    for( int j=0;j<N;++j ){
      cout << ( (i>=j && i>=abs(N-1-j))?1:0 ) << " ";
    }
    cout << endl;
  }
}
получается

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
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
20.05.2010, 20:06 #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
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
   const int n = 5;
   const int m = 3;
 
   int a[n][m];
 
   for(int i = 0; i < n; ++i)
      for(int j = 0; j < m; ++j)
         a[i][j] = rand() % 9;
 
   for(int i = 0; i < n; ++i)
   {
      for(int j = 0; j < m; ++j)
         cout << a[i][j] << ' ';
      cout << endl;
   }
 
   int sum = 0;
   for(int i = 0, k = m; i < n; ++i, --k)
      for(int j = 0; j < k; ++j)
         if(&a[i][j] != &a[n-i-1][j])
            sum += a[i][j] + a[n-i-1][j];
         else
            sum += a[i][j];
 
   cout << "sum = " << sum << endl;
 
   system("pause");
   return 0;
}
Результат
Код
5 8 7
4 8 1
3 0 7
2 8 2
7 6 7
sum = 65
Добавлено через 53 секунды
оу нет, прошу прощения, я неправильно понял =)
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
20.05.2010, 20:12 #6
я не представляю как при м!=н сформировать подобный масссив
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
20.05.2010, 20:13 #7
Цитата Сообщение от alex_x_x Посмотреть сообщение
я не представляю как при м!=н сформировать подобный масссив
Так я думаю из условия это как факт
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
20.05.2010, 20:16 #8
ну нарисуйте что это будет?

***
-*-
-*-
***
?
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
20.05.2010, 20:48 #9
я не видел предложение выше поэтому нарисовал обратную задачу
вот для этих размеров:
C++
1
2
   const int n = 10;
   const int m = 8;
C++
1
2
3
   for(int i = 0; i < n/2; ++i)
      for(int j = m - i - 1; j >= i; --j)
         a[i][j] = 1, a[n-i-1][m-j-1] = 1;
результат такой:
Код
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 0
0 0 1 1 1 1 0 0
0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0
0 0 1 1 1 1 0 0
0 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1
разумеется массив заранее забит нулями, но ведь не суть.. справляется вроде как с любыми размерами

надо еще только в конце на нечетность проверить и забить центральную строку

возможен ведь и такой вариант:
Код
1 1 1 1 1
0 1 1 1 0
0 0 0 0 0
0 1 1 1 0
1 1 1 1 1
Как я понимаю при неравных сторонах прямоугольника есть два варианта:
1. предположить, что массив заранее забит нулями и сдвигаться сверху и снизу к центру приравнивая к 1
2. предположить, что массив заранее забит единицами и сдвигаться слева и справа приравнивая к 0
ну как-то так ... результат будет разный
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
20.05.2010, 23:24 #10
Цитата Сообщение от fasked Посмотреть сообщение
Как я понимаю при неравных сторонах прямоугольника есть два варианта:
1. предположить, что массив заранее забит нулями и сдвигаться сверху и снизу к центру приравнивая к 1
2. предположить, что массив заранее забит единицами и сдвигаться слева и справа приравнивая к 0
ну как-то так ... результат будет разный
это должно быть четко оговорено в задании, а то никак не понять, а метод заполнения неплох
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2010, 23:24
Привет! Вот еще темы с ответами:

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

Масив - C++
Нужно зделать ёлку из двухмерного масива A!Через for+if Начинаем верхушка 1 символ и внизу по 1 добавляем полючаеться что-то на подобие...

Масив D[m][n] - C++
В масиве D действительных чисел найти суму елементов суму индексов каких парна. Помогите пожалуйста. В течение 30 мин срочно надо.

Класы и масив - C++
Если у меня есть, например, такой I клас: class Point { int x, y; Point(int x, int y) { this-&gt;x = x; ...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
20.05.2010, 23:24
Ответ Создать тему
Опции темы

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