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

Найти произведение элементов главной диагонали матрицы, минимальный элемент в 3-ей строке - C++

Восстановить пароль Регистрация
 
BE4ST
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 15
24.11.2014, 16:04     Найти произведение элементов главной диагонали матрицы, минимальный элемент в 3-ей строке #1
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
#include "stdafx.h"
#include <math.h>
#include <iomanip>
#include <iostream>
#include <fstream>
using namespace std;
 
int main ()
{double a[4][4],p,imin,jmin,min; 
int i,j,tmp;
fstream file;
file.open("1.txt", ios::in);
for(i=0; i<4; i=i+1){
for(j=0; j<4; j=j+1){
file>>a[i][j];
}
}
file.close();
p=1;i=j;
for(i=0; i<4; i=i+1){
for(j=0; j<4; j=j+1){
p=p*a[i][j];
}
}
cout<<"p="<<p<<endl;
min=1000;
imin=0; jmin=0;
for(i=0; i<4; i=i+1){
for(j=1; j<4; j=j+1){
if(a[2][j]<min){
min=a[2][j];
}
}
}
cout<<"min="<<min<<endl;
tmp=a[i][j];
a[i][j]=p;
p=tmp;}

Задание.
Дана матрица А(4,4), задать из файла. Найти произведение элементов среди элементов расположенных на главной диагонали матрицы А. Найти минимальный элемент в 3-ей строке матрицы. Поменять местами найденный минимальный элемент и значение P.


Не меняет произведение и минимальный элемент и минимум. Неправильно находит произведение.


Матрица:
-4 -2 -7 8
2 3 4 9
2 7 6 -6
6 4 -3 -4
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2014, 16:04     Найти произведение элементов главной диагонали матрицы, минимальный элемент в 3-ей строке
Посмотрите здесь:

C++ Найти минимальный элемент на главной диагонали матрицы
C++ Найти минимальный элемент, расположенный на главной диагонали матрицы
C++ Найти произведение отрицательных элементов главной диагонали матрицы
C++ Найти минимальный элемент каждой строки матрицы и поместить их на главной диагонали
Определить минимальный элемент каждой строки матрицы и найти произведение положительных элементов, расположенных на ее главной диагонали. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13955 / 8786 / 1222
Регистрация: 24.12.2010
Сообщений: 15,911
24.11.2014, 16:40     Найти произведение элементов главной диагонали матрицы, минимальный элемент в 3-ей строке #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
BE4ST, Вот тут
C++
1
2
3
4
p=1;i=j;
for(i=0; i<4; i=i+1){
for(j=0; j<4; j=j+1){
p=p*a[i][j];
ты находишь произведение всех элементов матрицы
Присвоение i = j совершенно бессмыслено, ты же потом даешь им совсем другие значения.Для подсчета произведения на главной диагонали подойдет такой код
C++
1
for(i=0, p=1; i<4; i++) p*= a[i][i];
BE4ST
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 15
24.11.2014, 17:04  [ТС]     Найти произведение элементов главной диагонали матрицы, минимальный элемент в 3-ей строке #3
Байт, спасибо огромное, но осталась еще она проблема- не меняется произведение и минимальное
Байт
 Аватар для Байт
13955 / 8786 / 1222
Регистрация: 24.12.2010
Сообщений: 15,911
24.11.2014, 19:42     Найти произведение элементов главной диагонали матрицы, минимальный элемент в 3-ей строке #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
BE4ST, циклы у тебя довольно бредовые. Могу вот что посоветовать. Представь себя на 10 минут компьютером и прокрути цикл ручками, записывая значения переменных. Можно еще на каждом шаге выводить значения индексов, переменных, всего что участвует.
C++
1
2
3
4
5
6
7
for(imin=i=0; i<4; i++) {
  if (i==0) mn = a[2][imin];
  else if (a[2][i] < a[2][imin]) imin = i;
}
tmp = p;
p = a[2][imin];
a[2][imin] = tmp;
И еще. Старайся избегать переменных типа min, max, abs, or, and... Они могут оказаться макросами или операциями...
Yandex
Объявления
24.11.2014, 19:42     Найти произведение элементов главной диагонали матрицы, минимальный элемент в 3-ей строке
Ответ Создать тему
Опции темы

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