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

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

Войти
Регистрация
Восстановить пароль
 
stupidstudent
17 / 14 / 1
Регистрация: 25.10.2011
Сообщений: 241
#1

В чем ошибка? В массиве обнулить побочную диагональ. - C++

28.04.2012, 14:30. Просмотров 660. Ответов 4
Метки нет (Все метки)

в паскале все работает, а в с++ нет
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 <iostream.h>
 
int main()
{
 system("chcp 1251");
 system("cls");
 int a[50][50];
 int i,j,m,n,o;
 cout << "Введите размер массива: ";
 cin >> n;
 
 cout << "введите массив: \n";
 for(i=1;i<n;i++)
 for(j=1;j<n;i++)
 cin >> a[i][j];
 
 for(i=1;i<n;i++)
 {
  for(j=1;j<n;i++)               
    cout << a[i][j] << " ";            
 }
    o = n + 1;
 for(i=1;i<n;i++)
 {
 for(i=1;i<n;i++)
 a[i,o-1] = 0;               
 }  
 cout << "Ответ: ";
 for(i=1;i<n;i++)
 {
  for(j=1;j<n;j++)               
   cout << a[i][j] << " ";
   
 }
     
 system("PAUSE");    
 return 0;   
}
жалуется на a[i,o-1] = 0;
26 incompatible types in assignment of `int' to `int[50]'
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2012, 14:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В чем ошибка? В массиве обнулить побочную диагональ. (C++):

Упорядочить побочную диагональ матрицы по уменьшению - C++
Нужно упорядочить по убыванию побочную диагональ матрицы. У меня код работает не совсем правильно - меняет местами только первые 2...

Поменять местами побочную и главную диагональ в матрице - C++
Здравствуйте. Помогите, пожалуйста, написать программу которая меняет побочную и главную диагональ в матрице

Как вывести побочную диагональ квадратной матрицы? - C++
Подскажите как вывести побочную диагональ квадратной матрицы?

Упорядочить по уменьшению побочную диагональ матрицы, не работает код - C++
Помогите, почему код не работает, что нужно исправить? void Sort_Array(vector &lt; vector&lt;int&gt; &gt; &amp;B,int N) { int temp = 0; for...

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

Поменять местами побочную диагональ и последнюю строку матрицы - C++
Помогите поменять местами побочную диагональ и последнюю строку матрицы.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mimicria
return (true);
1957 / 1094 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
28.04.2012, 14:32 #2
Цитата Сообщение от stupidstudent Посмотреть сообщение
a[i,o-1] = 0;
Вот в этом
1
stupidstudent
17 / 14 / 1
Регистрация: 25.10.2011
Сообщений: 241
28.04.2012, 15:00  [ТС] #3
Цитата Сообщение от mimicria Посмотреть сообщение
Вот в этом
как правильно?

Добавлено через 23 минуты
подправил остальное, но с диагональю проблема
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>
 
int main()
{
 system("chcp 1251");
 system("cls");
 int a[128][128];
 int i,j,m,n,o;
 cout << "Введите размер массива: ";
 cin >> n;
 
 cout << "введите массив: \n";
 for(i=1;i<n;i++)
 for(j=1;j<n;j++)
 cin >> a[i][j];
 
 for(i=1;i<n;i++)
 {
  for(j=1;j<n;j++)               
    cout << a[i][j] << " ";
    cout << endl;              
 }
    o = n + 1;
 for(i=1;i<n;i++)
 {
 for(i=1;i<n;i++)
 //a[i,o-1] = 0;        как обнулить побочную диагональ в с++ ?      
 }  
 cout << "Ответ: \n";
 for(i=1;i<n;i++)
 {
  for(j=1;j<n;j++)               
   cout << a[i][j] << " ";
   cout << endl;
  
 }
     
 system("PAUSE");    
 return 0;   
}
0
andy_111
90 / 59 / 2
Регистрация: 03.07.2011
Сообщений: 148
28.04.2012, 15:11 #4
Я посчитал и получилось, что для элементов побочной диагонали квадратной матрицы суммы индексов столбца и строки равны и составляют число строк + 1.
Таким образом, получаем код для обнуления побочной диагонали

C++
1
2
3
for(i=1;i<n;i++)
   for(j=1;j<n;j++)
       if (i+j == n) a[i][j] = 0;
Вообще ну очень неудобно то, что вы считаете массивы с 1 Здесь у меня стоит условием i+j == n, так как массивы считаются с 1.

В общем вот так будет :

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
#include <iostream.h>
 
int main()
{
 system("chcp 1251");
 system("cls");
 int a[128][128];
 int i,j,m,n,o;
 cout << "Array size: ";
 cin >> n;
 
 cout << "Array: \n";
 for(i=1;i<n;i++)
 for(j=1;j<n;j++)
 cin >> a[i][j];
 
 for(i=1;i<n;i++)
 {
  for(j=1;j<n;j++)
    cout << a[i][j] << " ";
    cout << endl;              
 }
    o = n + 1;
   for(i=1;i<n;i++)
      for(j=1;j<n;j++)
       if (i+j == n) a[i][j] = 0;
 
 cout << "Answer: \n";
 for(i=1;i<n;i++)
 {
  for(j=1;j<n;j++)               
   cout << a[i][j] << " ";
   cout << endl;
  
 }
     
 system("PAUSE");    
 return 0;   
}
1
stupidstudent
17 / 14 / 1
Регистрация: 25.10.2011
Сообщений: 241
28.04.2012, 15:21  [ТС] #5
andy_111, Спасибо.
можно и вот так:
C++
1
2
3
4
 for(i=0;i<=n;i++)
 {
      a[i][n-i+1]=0;
 }
Кстати, чтобы был русский язык в консоли, пишите
C++
1
system("chcp 1251");
и в свойствах программы(консольки) поставьте шрифт Lucida Console
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2012, 15:21
Привет! Вот еще темы с ответами:

Квадратная матрица: переставить главную и побочную диагональ этой матрицы - C++
Дано натуральное число n, что определяет количество строк и столбцов матрицы,числа являются целыми. Надо переставить местами главную и...

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

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

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


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

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

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