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

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

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

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

24.11.2014, 16:04. Просмотров 642. Ответов 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2014, 16:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти произведение элементов главной диагонали матрицы, минимальный элемент в 3-ей строке (C++):

Определить минимальный элемент каждой строки матрицы и найти произведение положительных элементов, расположенных на ее главной диагонали. - C++
1. Определить минимальный элемент каждой строки матрицы. Напечатать его значение и индексы. 2. Найти произведение положительных элементов...

Найти произведение максимального элемента главной диагонали на минимальный элемент побочной диагонали - C++
Всем привет! Мастера помогите доделать задание с матрицой. Вот само задание: Найти произведение максимального элемента главной...

Найти минимальный элемент на главной диагонали матрицы - C++
Найти минимальный элемент на главной диагонали матрицы

Найти минимальный элемент, расположенный на главной диагонали матрицы - C++
1) Для массива А, состоящего из N элементов. a)Найти минимальный элемент, расположенный на главной диагонали матрицы A, а из элементов...

Найти минимальный элемент матрицы, расположенный ниже главной диагонали - C++
Задана матрица размером NxN. Найти минимальный элемент, среди элементов, расположенных ниже главной диагонали, номер его строку и номер его...

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

3
Байт
Нарушитель
Эксперт C
16653 / 10930 / 1674
Регистрация: 24.12.2010
Сообщений: 21,298
24.11.2014, 16:40 #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];
1
BE4ST
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 15
24.11.2014, 17:04  [ТС] #3
Байт, спасибо огромное, но осталась еще она проблема- не меняется произведение и минимальное
0
Байт
Нарушитель
Эксперт C
16653 / 10930 / 1674
Регистрация: 24.12.2010
Сообщений: 21,298
24.11.2014, 19:42 #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... Они могут оказаться макросами или операциями...
1
24.11.2014, 19:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2014, 19:42
Привет! Вот еще темы с ответами:

Найти минимальный элемент каждой строки матрицы и поместить их на главной диагонали - C++
Двумерные массивы: 6)Найти минимальный элемент каждой строки квадратной матрицы X=( xi,k) и поместить их на главной диагонали, а...

Найти максимальный элемент главной диагонали матрицы и множитель положительных элементов выбраной диагонали - C++
Узнать максимальные элемент на главной диагонали и множитель позитивных элементов выбраной диагонали. Рамер матрицы вводить с клавиатуры,...

Найти произведение отрицательных элементов главной диагонали матрицы - C++
Дана матрица 6х6. Подсчитать произведение отрицательных элементов главной диагонали матрицы. Если кол-во положительных элементов матрицы...

Найти минимальный среди элементов матрицы лежащих выше главной диагонали - C++
Нужно создать функции которые будут обрабатываться с помощью матрицы. Матрица в функция обрабатывается как параметр. С помощью 3...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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