Консультация № 174693
29.11.2009, 23:31
0.00 руб.
0 5 1
Уважаемые эксперты помогите решить задачу:
Вид массива (полученный массив напечатать)
4 3 2 1
3 2 1 0
2 1 0 0
1 0 0 0
В каждом столбце найти наименьший элемент, затем найти их произведение.
Помогите пожалуйста, а то я не очень разбираюсь в массивах..ю

Обсуждение

давно
Специалист
246813
155
30.11.2009, 00:42
общий
это ответ
Здравствуйте, marina595.
Так как у данной матрицы соответствующие столбцы и строки равны, то транспонирование матрицы делать не обязательно в целях сделать строку столбцом. Но в данной программе транспонирование реализовано.
Программа написана и проверена на Microsoft Visual C++ 6.0.
Комментарии в программе.
Код:
#include <iostream>
using namespace std;

const k=4;
void main(){
int i,j,min,proiz;
int a[k][k]=
{
4,3,2,1,
3,2,1,0,
2,1,0,0,
1,0,0,0
};
int at[k][k];

locale::global(locale("russian_russia.866")); // Чтобы печатать русскими буквами

wcout<<L"Данная матрица:"<<endl;
for(i=0;i<k;i++){ //выводим данную матрицу
for(j=0;j<k;j++){
cout<<a[i][j]<<" ";
if(j==3)cout<<endl; //Печатаем каждую строчку с новой строки
}
}

for(i=0;i<k;i++){ //Транспонируем матрицу, то есть меняем местами строки со столбцами
for(j=0;j<k;j++){
at[j][i]=a[i][j];
}
}

cout<<endl;

wcout<<L"Транспонированная матрица:"<<endl;
for(i=0;i<k;i++){ //Выводим транспонированную матрицу
for(j=0;j<k;j++){
cout<<at[i][j]<<" ";
if(j==3)cout<<endl;
}
}

cout<<endl;

min=at[0][0];
proiz=1;
for(i=0;i<k;i++){ //Определяем минимальный элемент
for(j=0;j<k;j++){
if (at[i][j]<min)
min=at[i][j];
if(j==3){
proiz*=min; //высчитываем произведение элементов каждой строки транспонированной матрицы
wcout<<L"Наименьший элемент "<<i<<L" столбца: "<<min<<endl;
}
}
}

wcout<<L"Произведение наименьших элементов: "<<proiz<<endl;

}
5
Неизвестный
30.11.2009, 10:05
общий
LfiN:
Доброе утро! А зачем вообще было транспонировать?
Код:

proiz=1;
for(j=0;j<k;j++) //Определяем минимальные элементы столбцов
{
min = a[0,j];
for(i=1;i<k;i++)
{
if (a[i][j]<min)
min=a[i][j];
}
proiz*=min; //высчитываем произведение минимальных элементов каждого столбца матрицы
wcout<<L"Наименьший элемент "<<j<<L" столбца: "<<min<<endl;
}

wcout<<L"Произведение наименьших элементов: "<<proiz<<endl;

давно
Специалист
246813
155
30.11.2009, 14:56
общий
leonid59:
Добрый день.
Прекрасный ход)) Не спорю)
Неизвестный
06.12.2009, 17:26
общий
LfiN:
а не могли бы вы написать в Borland C++ Builder 6.0, очень надо
давно
Специалист
246813
155
06.12.2009, 18:07
общий
marina595:
Задавайте новый вопрос в рассылку.
Форма ответа