Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2017, 21:16   #1
vlada_kr
Новичок
Джуниор
 
Регистрация: 09.09.2017
Сообщений: 2
По умолчанию Работа с двумерным массивом

Добрый вечер! Есть задание: Дана действительная квадратная матрица порядка 7. Если в i-ой строке матрицы элемент, принадлежащий главной диагонали, отрицателен, то заменить этот элемент суммой эле-ментов i-той строки, предшествующих первому отрицательному элементу; в противном случае – суммой последних элементов i-той строки, начиная с первого отрицательного элемента. (Элементы главной диагонали (неизмененные) вывести в массив. Вывести исходную и преобразованную матрицы, полученный массив - это пока не нужно).
Вот коды. В чем здесь ошибка. Программа запускается, но считает неправильно. Допустим при вводе различных чисел первые две строки считает правильно, а остальные уже ошибки, а при других данных уже считает неправильно. И как можно прописать, что если первый элемент отрицательный, до него же нет других элементов, то он выдает ошибку.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
setlocale(0, "Rus");
const int n = 4;
int matr[n][n];
int i, j;
int sum = 0, index, stroka;
for (i = 0; i <= 3; i++)
for (j = 0; j <= 3; j++)
cin >> matr[i][j];
for (i = 0; i <= 3; i++)
{
for (j = 0; j <= 3; j++)
cout << matr[i][j] << '\t';
cout << '\n';
}
for (i = 0; i <= 3; i++)
{
for (j = 0; j <= 3; j++)
if (matr[i][i] < 0)
{
cout << "отрицательный \n";
for (int k = 0; (k <= 3)&&(matr[i][k]>0); k++)
sum = sum + matr[i][k];
// while (matr[i][k] > 0);
matr[i][i] = sum;
sum = 0;

}
else
{
for(int k = 0; k < 4; k++)
if (matr[i][k] < 0)
{
index = k; //stroka = i;
break;
}
for (int k = index; k < 4; k++)
sum += matr[i][k];
matr[i][i] = sum;
sum = 0;
}
}

for (i = 0; i <= 3; i++)
{
for (j = 0; j <= 3; j++)
cout << matr[i][j] << '\t';
cout << '\n';
}

system("pause");
return 0;
}
vlada_kr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с двумерным массивом Arsenikum C# (си шарп) 2 13.07.2015 14:29
Работа с двумерным массивом naty7773 Помощь студентам 1 18.12.2012 12:38
Работа с двумерным массивом novak3 Общие вопросы C/C++ 8 06.05.2011 03:15
Работа с двумерным массивом kami46 Помощь студентам 3 20.11.2010 17:51
Работа с двумерным массивом SaimaN Помощь студентам 0 16.03.2010 15:23