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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 15:19   #1
Ru1n
Новичок
Джуниор
 
Регистрация: 20.12.2011
Сообщений: 6
По умолчанию Исправить ошибку в зачадаче (С++)

Привет всем, помогите исправить ошибку в задаче и дописать её до конца.

Что смог сделать, но а ответ выдаёт нули. Как исправить?:
Условие: Найти сумму элементов среди элементов расположенных на главной диагонали матрицы А (4 на 4).

Код:
#include "stdafx.h"
#include "iostream"
#include "math.h"
using namespace std;
int main () {
double A[4][4];
double S=0;
for (int i=0;i<4;i++)
{
	for (int j=0; j<4; j++)
		{
		cin>>A[i][j];
		}
}
for(int i=0; i<4; i++)
	{
	for (int j=0; j<4; j++)
	{
	if (i=j)
	S=S+A[4][4];
	}
}
cout<<"S ravno"<<S<<endl;

	return 0;
	
}

И если не сложно, то как сделать вот это, не могу понять:

2.Найти максимальный элемент в 3-ей строке матрицы
3.Поменять местами найденный максимальный элемент и значение S.

Последний раз редактировалось Ru1n; 20.12.2011 в 16:19.
Ru1n вне форума Ответить с цитированием
Старый 20.12.2011, 16:16   #2
Xenm
Пользователь
 
Регистрация: 15.09.2010
Сообщений: 38
Хорошо

PHP код:
if (i=j)
   
S=S+A[4][4]; 
Ну во-первых проверка на равенство в c++ - это ==, во-вторых вместо [4][4], наверное надо переменные ставить?
Xenm вне форума Ответить с цитированием
Старый 20.12.2011, 16:21   #3
Ru1n
Новичок
Джуниор
 
Регистрация: 20.12.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Xenm Посмотреть сообщение
PHP код:
if (i=j)
   
S=S+A[4][4]; 
Ну во-первых проверка на равенство в c++ - это ==, во-вторых вместо [4][4], наверное надо переменные ставить?
В примере на лекции препод показывал матрица 5 на 5, в домашней задачи 4 на 4, поэтому смутился, приду домой попробую.
А вот ещё что, числа в забивки матрицы произвольные.
Ru1n вне форума Ответить с цитированием
Старый 20.12.2011, 17:56   #4
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Цитата:
2.Найти максимальный элемент в 3-ей строке матрицы
Код:
double max = A[2][0];

for (i=1; i<4; i++)
  if (A[2][i] > max)
    max = A[2][i];
Цитата:
3.Поменять местами найденный максимальный элемент и значение S.
Что-то не понятно как поменять? S - это просто сумма элементов расположенных на главной диагонали

Последний раз редактировалось viron; 20.12.2011 в 17:58.
viron вне форума Ответить с цитированием
Старый 20.12.2011, 18:05   #5
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Цитата:
Код:
for(int i=0; i<4; i++)
{
  for (int j=0; j<4; j++)
  {
    if (i==j)
      S=S+A[i][j];
  }
}
Здесь можно чуть-чуть по-другому сделать (без лишних циклов):
Код:
S = 0;
for (int i=0; i<4; i++)
  S = S + A[i][i];

Последний раз редактировалось viron; 20.12.2011 в 18:08.
viron вне форума Ответить с цитированием
Старый 20.12.2011, 20:17   #6
Ru1n
Новичок
Джуниор
 
Регистрация: 20.12.2011
Сообщений: 6
По умолчанию

viron

Что-то я немного не понял, как код полностью будет выглядить, написать не сможешь вместе с моим, что я написал?
Ru1n вне форума Ответить с цитированием
Старый 20.12.2011, 23:32   #7
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Код:
#include "stdafx.h"
#include "iostream"
#include "math.h"

using namespace std;
int main () 
{
	double A[4][4];
	double S=0;
	int i, j;

	// заполнение массива A
	for (i=0; i<4; i++)
		for (j=0; j<4; j++)
			cin >> A[i][j];

	// поиск суммы на главной диагонали
	for (i=0; i<4; i++)
		S = S + A[i][i];

	// результат
	cout << "S = " << S << endl;

	// поиск максимального элемента в 3-ой строке матрицы
	double max = A[2][0];
	for (i=1; i<4; i++)
  		if (A[2][i] > max)
    			max = A[2][i];

	cout << "max = " << max << endl;	

	return 0;
}

Последний раз редактировалось viron; 20.12.2011 в 23:36.
viron вне форума Ответить с цитированием
Старый 20.12.2011, 23:49   #8
Ru1n
Новичок
Джуниор
 
Регистрация: 20.12.2011
Сообщений: 6
По умолчанию

viron

Спасибо! А то я не туда вставлял, ошибку понял впредь учту
Ru1n вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исправить ошибку Дмитрий Solov Паскаль, Turbo Pascal, PascalABC.NET 1 03.12.2011 13:26
С# Исправить ошибку PROkaZZZniK Помощь студентам 3 20.11.2011 22:49
Как исправить ошибку yana33311 Паскаль, Turbo Pascal, PascalABC.NET 2 17.04.2011 21:07
Исправить ошибку LLIypLLIyH Помощь студентам 5 16.06.2008 16:50