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

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

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

Диагональные элементы матрицы заменить на 1 - C++

24.11.2012, 17:31. Просмотров 643. Ответов 6
Метки нет (Все метки)

дан двумерный массив. диагональные элементы массива заменить на 1.
проблема с заменой. в полученном массиве все элементы совпадают только ч последней строкой исходного массива. в чем проблема? не могу найти(
Программа на Dev c++

Код
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
int i, j, k, n, m, x[20];
printf("\n vvedite m ");
scanf("%d",&m);
printf("\n vvedite n ");
scanf("%d",&n);
srand(time(0));
printf("ishodn mass\n");

for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{x[i,j]=rand()%41-20;
printf("%4d",x[i,j]);}
}


printf("poluchili  mass\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if (i=j) {x[i,j]=1};
printf("%4d",x[i,j]);
}}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++) 
cout<<x[i,j]<<" "; 
cout<<endl;} 
getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2012, 17:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Диагональные элементы матрицы заменить на 1 (C++):

Заменить диагональные элементы матрицы - C++
В результате вычислений получена квадратная матрица n*n(3*3). Нужно заменить положительные диагональные элементы числом -5. Подскажите...

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

Заменить диагональные элементы матрицы минимальными элементами соответствующих столбцов - C++
Заданная матрица. Заменить диагональные элементы матрицы минимальными элементами соответствующих столбцов.

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

Определить минимальный элемент квадратной матрицы, расположенный в левой части, ограничен диагоналями, включая диагональные элементы - C++
Определить минимальный элемент квадратной матрицы, расположенный в левой части, ограничен диагоналями, включая диагональные элементы.

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

6
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
24.11.2012, 18:35 #2
Цитата Сообщение от aliseoncka Посмотреть сообщение
(i=j)
if (i==j)

Добавлено через 1 минуту
Цитата Сообщение от aliseoncka Посмотреть сообщение
x[i,j]=1
вернее
C++
1
x[i][i]=1;
Добавлено через 6 минут
А ещё вернее не создавать двойной цикл, а писать
C++
1
for(i=0;i<min(n, m);i++) x[i][i]=1;
1
aliseoncka
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 7
24.11.2012, 22:11  [ТС] #3
Ввела if (i==j) чуть помогло. теперь он выводит так:
исходный массив
2 -5 7 8
3 5 -4 4
2 3 5 6

полученный массив
1 2 5 6
1 1 5 6
1 1 1 6
1 1 1 1

может у меня в программе скобки {} не там стоят или что еще? не могу никак понять((
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
24.11.2012, 23:56 #4
к элементам массива обращаются x[i][j] , а не x[i, j]
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
41
42
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;//а где ты std используешь?...А вижу,но зачем смешивать printf и cout?
int main()
{
  int i, j, k, n, m, x[20];
  srand(time(0));
 
  printf("\n vvedite m ");
  scanf("%d",&m);
  printf("\n vvedite n ");
  scanf("%d",&n);
 
  printf("ishodn mass\n");
  for(i=0;i<m;i++)
  {
    for(j=0;j<n;j++)
    {
       x[i][j]=rand()%41-20;
       printf("%d ",x[i][j]);
    }
  }
  printf("poluchili  mass\n");
  for(i=0;i<m;i++)
  {
    for(j=0;j<n;j++)
    {
      if (i==j) x[i,j]=1;
      printf("%4d",x[i][j]);
     }
  }
  for(i=0;i<m;i++)
  {
    for(j=0;j<n;j++) 
      cout<<x[i][j]<<" "; 
    cout<<endl;
  } 
  getch();
  return 0;
}
0
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
25.11.2012, 00:05 #5
Цитата Сообщение от aliseoncka Посмотреть сообщение
дан двумерный массив
извините, но в программе нет двумерного массива, а только одномерный
Цитата Сообщение от aliseoncka Посмотреть сообщение
int i, j, k, n, m, x[20];
1
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
25.11.2012, 00:10 #6
Цитата Сообщение от V.A.L.I.D Посмотреть сообщение
извините, но в программе нет двумерного массива, а только одномерный
Ох, а этого я вообще не ожидал. хотел исправить программу, а самую главную ошибку прошляпил!
C++
1
int i, j, k, n, m, x[20][20];
конечно же!
1
aliseoncka
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 7
25.11.2012, 14:59  [ТС] #7
Ууух))как я рада))) спасибо))) ввела двумерный массив,исправила кое-что и работает)))) Спасибо вам))
0
25.11.2012, 14:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2012, 14:59
Привет! Вот еще темы с ответами:

Элементы матрицы умножить на скаляр C=5,2. Элементы третьего столбца заменить единицами - C++
Не могу понять как вычислить матрицу, подскажите пожалуйста=) Данная матрица А (4,5), элементы умножить на скаляр C = 5,2. Элементы...

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

Заменить элементы матрицы по правилу - C++
помогите решыть задание: . Заменить элементы матрицы A=(a), i=j=1,2,...,n, по правилу: a ...

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


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

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

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