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

В матрице найти сумму повторяющихся элементов главной диагонали - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Возможно ли изменить начальное значение переменной? http://www.cyberforum.ru/cpp-beginners/thread1156969.html
У нас есть код: int main(){ const int val=5; cout<<val; //Какая то магия... } Нужно, чтобы после запуска программы начальное значение переменной менялось на другое, то есть: Запустил в...
C++ Удаление символа из класса строки-агрегата классов символов Извините вопрос предыдушей задачи вынес в отдельную тему. Напоминаю. Есть класс символа ,TSymb и класс строка, TString являющийся агрегатом из n символов. Надо реализовать в TString метод удаления... http://www.cyberforum.ru/cpp-beginners/thread1156966.html
C++ Методы Оптимизации: Метод параллельных касательных - нужен алгоритм
Здравствуйте. Помогите пожалуйста с составлением алгоритма по методу параллельных касательных. Пытался читать литературу, но там алгоритмы в слишком "математическом" виде, и я их не очень понимаю.
Массивы Функций. DirectX 11. Отобразить несколько моделей C++
Всем привет, продолжаю пытаться изучать DirectX 11. Возникла задача отобразить более одной разной модели. Есть такая штука ID3D11DeviceContext* dirX11_d3dContext; // Контекст устройства...
C++ Вычислить сумму тех элементов матрицы, номера строк и столбцов которых принадлежат некоторым множествам http://www.cyberforum.ru/cpp-beginners/thread1156898.html
Дана квадратная матрица А и два непустых множества S1 и S2, состоящие из каких-то элементов от 1 до 10, например S1= и S2=. Вычислить сумму тех элементов матрицы, номера строк и столбцов которых...
C++ Считывание текста с клавиатуры и нахождение слова, начинающиеся и заканчивающиеся согласной буквой #include <iostream> #include <sstream> #include <string> #include <cctype> #include <iterator> int main(){ std::string buf, wrd; size_t chislo; подробнее

Показать сообщение отдельно
Nick96
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 98
27.04.2014, 17:41  [ТС]
Видимо в коде есть ошибка, поскольку он считает и другие повторяющиеся элементы ( А НАДО ТОЛЬКО ГЛАВНОЙ ДИАГОНАЛИ). Например, в этой матрице
611
111
116
с++ пишет, что сумма = 13 ( а не 12).
ОЧЕНЬ ПРОШУ ПОМОГИТЕ ИСПРАВИТЬ ОШИБКУ!!!

Добавлено через 2 минуты
То есть находится вся сумма элементов на главной диагонали, а надо, чтобы учитывалась сумма повторяющихся элементов на главной диагонали.

Добавлено через 1 минуту
Например, в той же матрице
611
111
116
Сумма должна быть = 12

Добавлено через 39 секунд
Сам код
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
int i, j, N, a[20][20];
cout << "Введите число строк и столбцов: ";
cin >> N;// ввод количества строк и столбцов
cout << "Введите матрицу\n";
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
cin >> a[i][j];
cout << "Матрица \n";// вывод матрицы
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
cout << a[i][j] << "\t";
cout << endl;
}
int sum = 0;
for (int i = 0; i<N; i++)
{
bool unique = true;
for (int j = 0; j<N && unique; j++)
if (i != j) unique = (a[i] != a[j]);
if (unique) sum += a[i][i];
}
if (sum % 3 == 0)
for (int i = 0; i<N; i++)
a[i][i] = 0;
cout << "Сумма повторяющихся элементов главной диагонали = " << sum << "\n";
if (sum % 3 != 0)
{
cout << "Сумма повторяющихся элементов главной диагонали не делится на 3 \n";
system("pause");
return 0;
}
cout << " Матрица приобретает вид\n";
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
cout << a[i][j] << "\t";
cout << endl;
}
system("pause");
return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru