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

Возвести в квадрад отрицательные элементы, которые находятся на главной диагонали и выше нее. - C++

Восстановить пароль Регистрация
 
spicer
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 30
20.11.2011, 15:26     Возвести в квадрад отрицательные элементы, которые находятся на главной диагонали и выше нее. #1
Если не трудно, то подскажите.
вот дана матрица 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
30
31
32
33
34
35
36
37
38
39
40
41
# include<iostream.h>
# include<conio.h>
# include<iomanip.h>
# include<MATH.h>
# include<stdlib.h>
 void main()
{         const n=5;
    int mas[n][n],a,i,j,temp=0;
    randomize();
    clrscr();
    for(i=0;i<n;i++)
    {
       for(j=0;j<n;j++)
       {
            a=random(10);
            mas[i][j]=a;
            cout<<setw(5)<<mas[i][j];
       }
            cout<<endl;
    }
    for(i=1;i<=n;i++)
           {
       for(j=1;j<=n-i;j++)
       {
            if(mas[j][j] > mas[j+1][j+1])
            {
                 temp=mas[j][j]; mas[j][j]=mas[j+1][j+1]; mas[j+1][j+1]=temp;
            }
       }
           }
      cout<<"-------------------------------------------"<<endl;
      for(i=0;i<n;i++)
      {
           for(j=0;j<n;j++)
    {
      cout<<setw(5)<<mas[i][j];
    }
    cout<<endl;
      }
   getch();
}
там сортировка пузырьком.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2011, 15:26     Возвести в квадрад отрицательные элементы, которые находятся на главной диагонали и выше нее.
Посмотрите здесь:

C++ Динамические двумерные массивы. Определить суму положительных элементов, которые находятся выше главной диагонали...
Квадратная матрица: Вычислить сумму элементов, расположенных на главной диагонали и выше, которые превосходят все элементы C++
C++ Обнулить элементы матрицы, лежащие одновременно выше главной диагонали и выше побочной диаго-нали.
C++ Дана квадратная вещественная матрица размерности n. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее
Матрицы. Отрицательные элементы матрицы, расположенные выше главной диагонали, заменить на квадраты их значений C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.11.2011, 15:29     Возвести в квадрад отрицательные элементы, которые находятся на главной диагонали и выше нее. #2
Цитата Сообщение от spicer Посмотреть сообщение
собственно как начать работу с главной диагональю и выше нее
цикл прохода по элементам главной диагонали и выше неё
C++
1
2
3
4
5
6
for (int i = 0; i < N; ++i)
{
    for (int j = i; j < N; ++j)
    {
    } 
}
Krasti
27 / 27 / 3
Регистрация: 07.11.2010
Сообщений: 140
20.11.2011, 15:39     Возвести в квадрад отрицательные элементы, которые находятся на главной диагонали и выше нее. #3
Главная диагональ и выше:
C++
1
2
for ( int i = 0; i < n; i++ )
for ( int j = i; j < n; j++ )
Добавлено через 6 минут
Цитата Сообщение от spicer Посмотреть сообщение
for(i=1;i<=n;i++)
* * * * * *{
* * * * * *for(j=1;j<=n-i;j++)
Тут наверное с нуля нужно начинать
spicer
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 30
20.11.2011, 23:10  [ТС]     Возвести в квадрад отрицательные элементы, которые находятся на главной диагонали и выше нее. #4
Цитата Сообщение от Krasti Посмотреть сообщение
for(i=1;i<=n;i++)
* * * * * *{
* * * * * *for(j=1;j<=n-i;j++)
Тут наверное с нуля нужно начинать

C++
1
for(i=1;i<=n;i++)
я исправил на 2 и все работает нормально.
при 0 он одному элементу присваивал индекс несуществующей ячейки.

Добавлено через 2 часа 6 минут
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
# include<iostream.h>
# include<conio.h>
# include<iomanip.h>
# include<MATH.h>
# include<stdlib.h>
 void main()
{          const n=5;
    int mas[n][n],a,i,j;
    randomize();
    clrscr();
    for(i=0;i<n;i++)
    {
          for(j=0;j<n;j++)
          {
                   a=random(10);
                   mas[i][j]=a;
                   cout<<setw(5)<<mas[i][j];
          }
          cout<<endl;
    }
    for(i=0;i<n;i++)
           {
         for(j=i;j<n;j++)
         {
                   if(mas[i][j] < 5)
                   {
                          mas[i][j]=mas[i][j]*mas[i][j];
                   }
         }
           }
           cout<<"-------------------------------------------"<<endl;
           for(i=0;i<n;i++)
           {
                for(j=0;j<n;j++)
         {
                  cout<<setw(5)<<mas[i][j];
         }
         cout<<endl;
           }
   getch();
}
вот. я ее написал. может понадобится кому-то.
всем спасибо за помощь.
Yandex
Объявления
20.11.2011, 23:10     Возвести в квадрад отрицательные элементы, которые находятся на главной диагонали и выше нее.
Ответ Создать тему
Опции темы

Текущее время: 15:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru