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

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

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

Заменить каждый нулевой элемент главной диагонали максимальным элементом побочной диагонали - C++

20.06.2011, 11:23. Просмотров 888. Ответов 12
Метки нет (Все метки)

Доброго времени суток.
Имеется задача:

Дан вещественный массив А[N][N]. Заменить каждый нулевой элемент главной диагонали максимальным элементом побочной диагонали. Подсчитать количество нулевых элементов главной диагонали.

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2011, 11:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заменить каждый нулевой элемент главной диагонали максимальным элементом побочной диагонали (C++):

Заменить каждый нулевой элемент главной диагонали матрицы максимальным элементом побочной диагонали - C++
дан массив А. Заменить каждый нулевой элемент главной диагонали максимальным элементом побочной диагонали! Подсчитать кол-во нулевых...

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

Заменить элементы главной диагонали матрицы нулями и найти максимальный элемент ниже побочной диагонали - C++
Есть пример для решения другой задачи(она находит суму всех элементов каждой строки и выводит результат суммы по возрастанию): #include...

Заменить элементы главной и побочной диагоналей матрицы на минимальный элемент ниже главной диагонали - C++
В квадратной матрице А заменить элементы главной и побочной диагоналей на минимальный элемент, найденный среди элементов, расположенных...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
20.06.2011, 11:45 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    
    int N; 
    cout << "Введите N: " ;
    cin >> N;
    
    float max = 0;
    float mas [N][N];
    cout << "Заполнение массива" << endl;
    for (int i = 0; i < N; i ++ ) 
    {
        for (int j = 0; j < N; j ++ )
        cin >> mas [i][j];
 
        if (max < mas [N-i-1][i]) max = mas [ N-i-1 ] [i]; // нахождение максимума
    }
 
    
    for ( int i = 0; i < N; i ++ )
        if (mas[i][i] == 0 ) mas [i][i] = max; // замена нулей
 
    cout << "Вывод массива:" << endl;
    for (int i = 0; i < N; i++){
        for (int j = 0; j < N; j++)
            cout << mas [i][j] << " " ;
        cout << endl;
    }
 
    getch();
    return 0;
}
Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
20.06.2011, 12:11 #3
Вариант с printf-ом:
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<stdio.h>
#include<stdlib.h>
main()
{
      int a[6][6]={{0,1,1,1,1,6},
                   {1,1,1,1,1,1},
                   {1,1,0,1,1,1},
                   {1,1,1,1,1,1},
                   {1,1,1,1,0,1},
                   {1,1,1,1,1,1}};
      int i,j,max=0,s=0,n=6;
      printf("Random matrix:\n\n");
      for(i=0;i<6;i++)
       { for(j=0;j<6;j++)
         {
           printf(" %3i",a[i][j]);
         }
       printf("\n\n");
       }
      printf("\n\nChanged matrix:\n\n");
        for(i=0;i<6;i++)
       { for(j=0;j<6;j++)
         { if (max<a[n-i-1][i]) max=a[n-i-1][i];                 
         }
       }
        for(int i=0;i<6;i++)
                if(a[i][i]==0)
                { a[i][i]=max;
                  s++;
                }
       for(i=0;i<6;i++)
       { for(j=0;j<6;j++)
         { 
           printf(" %3i",a[i][j]);
         }
       printf("\n\n");
       }
printf("\n\nKolichestvo nulevih elementov na glavnoi diagonali kotorie bili zameneni=%i",s);
system("pause");
}
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
20.06.2011, 12:14 #4
опять не по условию делаешь ))
написано же - вещественный массив )

забыл счетчик.
C++
1
2
3
      int count=0;
  for ( int i = 0; i < N; i ++ )
                if (mas[i][i] == 0 ){count++; mas [i][i] = max;} // замена нулей
Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
20.06.2011, 12:17 #5
Цитата Сообщение от co6ak Посмотреть сообщение
опять не по условию делаешь ))
написано же - вещественный массив )
Если надо, переделает
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
20.06.2011, 12:19 #6
по такой логике
"если надо - сам напишет" ))
snoop9x
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 14
20.06.2011, 12:22 #7
co6ak, здравствуйте, не могли бы мне помочь.... Как можно добавить элементы в конец одномерного массива... Размерность массива задается с клавиатуры
Verinom
0 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 4
20.06.2011, 12:24  [ТС] #8
Цитата Сообщение от co6ak Посмотреть сообщение
опять не по условию делаешь ))
написано же - вещественный массив )

забыл счетчик.
C++
1
2
3
      int count=0;
  for ( int i = 0; i < N; i ++ )
                if (mas[i][i] == 0 ){count++; mas [i][i] = max;} // замена нулей
Извиняюсь за глупый вопрос но в какую часть программы его вставлять, куда не поставлю продолжает писать про 6 ошибок? Благодарю за помощь.
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
20.06.2011, 12:25 #9
C++
1
2
        for ( int i = 0; i < N; i ++ )
                if (mas[i][i] == 0 ) mas [i][i] = max;
вот это заменить на
C++
1
2
3
4
      int count=0;
  for ( int i = 0; i < N; i ++ )
                if (mas[i][i] == 0 ){count++; mas [i][i] = max;}
cout << "Количество нулей - " << count << endl;
Verinom
0 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 4
20.06.2011, 12:44  [ТС] #10
1>------ Build started: Project: lfbar 7, Configuration: Debug Win32 ------
1>Compiling...
1>ura.cpp
1>c:\users\пк\documents\visual studio 2008\projects\lfbar 7\lfbar 7\ura.cpp(14) : error C2057: expected constant expression
1>c:\users\пк\documents\visual studio 2008\projects\lfbar 7\lfbar 7\ura.cpp(14) : error C2466: cannot allocate an array of constant size 0
1>c:\users\пк\documents\visual studio 2008\projects\lfbar 7\lfbar 7\ura.cpp(14) : error C2057: expected constant expression
1>c:\users\пк\documents\visual studio 2008\projects\lfbar 7\lfbar 7\ura.cpp(14) : error C2466: cannot allocate an array of constant size 0
1>c:\users\пк\documents\visual studio 2008\projects\lfbar 7\lfbar 7\ura.cpp(14) : error C2087: 'mas' : missing subscript
1>c:\users\пк\documents\visual studio 2008\projects\lfbar 7\lfbar 7\ura.cpp(14) : error C2133: 'mas' : unknown size
1>Build log was saved at "file://c:\Users\ПК\Documents\Visual Studio 2008\Projects\lfbar 7\lfbar 7\Debug\BuildLog.htm"
1>lfbar 7 - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Пишет и до замены и после нее.
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
20.06.2011, 12:50 #11
экспресс студия...

замени все N на 4 чтоли... или на 6
Verinom
0 / 0 / 0
Регистрация: 20.06.2011
Сообщений: 4
20.06.2011, 13:40  [ТС] #12
Заменил все N на 6 кроме
int constant ; если заместо constant стоит 6 то сообщает про ошибку
cout << "Введите N: " ;
cin >> 6;
Осталось тока одна ошибка
1>c:\users\пк\documents\visual studio 2008\projects\lfbar 7\lfbar 7\ura.cpp(11) : error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
20.06.2011, 14:40 #13
Сообщение было отмечено автором темы, экспертом или модератором как ответ
тыркни
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 <conio.h>
#define N 6
using namespace std;
 
int main()
{
        setlocale(LC_ALL, "Russian");
                
        float max = 0;
        float mas [N][N];
        cout << "Заполнение массива" << endl;
        for (int i = 0; i < N; i ++ ) 
        {
                for (int j = 0; j < N; j ++ )
                cin >> mas [i][j];
 
                if (max < mas [N-i-1][i]) max = mas [ N-i-1 ][i]; // нахождение максимума
        }
 
        int counter = 0;
        for ( int i = 0; i < N; i ++ )
                if (mas[i][i] == 0 ) {counter ++; mas [i][i] = max;} // замена нулей
        cout << "Количество нулей = " << counter << endl;
 
        cout << "Вывод массива:" << endl;
        for (int i = 0; i < N; i++){
                for (int j = 0; j < N; j++)
                        cout << mas [i][j] << " " ;
                cout << endl;
        }
 
        getch();
        return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2011, 14:40
Привет! Вот еще темы с ответами:

Заменить элементы главной диагонали суммами элементов их строк стоящих выше побочной диагонали - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;rus&quot;);//Русский язык const int x...

Найти произведение максимального элемента главной диагонали на минимальный элемент побочной диагонали - C++
Всем привет! Мастера помогите доделать задание с матрицой. Вот само задание: Найти произведение максимального элемента главной...

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

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


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

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

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