Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241

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

28.04.2012, 14:30. Показов 1656. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.04.2012, 14:30
Ответы с готовыми решениями:

обнулить побочную диагональ матрицы
Дан двумерный массив А(4,4) в виде квадратной матрицы. Составьте программу, обнуляющую побочную диагональ матрицы, если в ней найдется хоть...

Обнулить побочную диагональ матрицы
Дан двумерный массив А(4,4) в виде квадратной матрицы. Составьте программу, обнуляющую побочную диагональ матрицы, если в ней найдется хоть...

Найти сумму максимума и минимума в каждой матрице. В той матрице, где сумма больше, обнулить главную и побочную диагональ
Очень не укладываюсь в срок помогите подготовить программу: Даны две квадратные матрицы A и B. Найти сумму максимума и минимума в...

4
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
28.04.2012, 14:32
Цитата Сообщение от stupidstudent Посмотреть сообщение
a[i,o-1] = 0;
Вот в этом
1
 Аватар для stupidstudent
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
28.04.2012, 15:00  [ТС]
Цитата Сообщение от 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
95 / 64 / 5
Регистрация: 03.07.2011
Сообщений: 148
28.04.2012, 15:11
Я посчитал и получилось, что для элементов побочной диагонали квадратной матрицы суммы индексов столбца и строки равны и составляют число строк + 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
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
28.04.2012, 15:21  [ТС]
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2012, 15:21
Помогаю со студенческими работами здесь

Считать из файла побочную диагональ
Задание: Нужно записать двухмерный массив Ann в файл. Потом из этого массива считать элементы побочной диагонали и записать их в вектор...

Заменить главную диагональ на побочную
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { ...

Побочную диагональ упорядочить по убыванию
сформировать произвольного размера квадратную матрицу А .элементы тех столбцов, сумма которых больше 12 уменьшить на элемент главной...

Выделить цветом побочную диагональ
здравствуйте! подскажите, пожалуйста, как при выводе матрицы выделить цветом её побочную диагональ? заранее спасибо

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru