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

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

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

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

24.11.2014, 16:04. Просмотров 588. Ответов 3
Метки нет (Все метки)

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++
Найти минимальный элемент главной диагонали заданной квадратной матрицы C++
C++ Найти минимальный элемент каждой строки матрицы и поместить их на главной диагонали
C++ Найти максимальный элемент главной диагонали матрицы и множитель положительных элементов выбраной диагонали
C++ Найти произведение отрицательных элементов главной диагонали матрицы
Найти минимальный среди элементов матрицы лежащих выше главной диагонали C++
Двумерный массив. Найти минимальный элемент в, среди элементов, лежащих выше главной диагонали C++
C++ В каждой строке матрицы элемент главной диагонали заменить суммой ранее расположенных элементов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
15686 / 10013 / 1504
Регистрация: 24.12.2010
Сообщений: 18,815
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
Байт, спасибо огромное, но осталась еще она проблема- не меняется произведение и минимальное
Байт
Эксперт C
15686 / 10013 / 1504
Регистрация: 24.12.2010
Сообщений: 18,815
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-ей строке
Ответ Создать тему
Опции темы

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