Программа должна запрашивать размеры матрицы и самостоятельно заполнять ее с помощью генератора случайных чисел (динамический массив). Верхняя граница для значения элементов матрицы также вводится с клавиатуры.
Дана целочисленная прямоугольная матрица. Определить:
а) произведение элементов тех строк, которые не содержат ни одного нулевого элемента;
б) максимум среди сумм элементов диагоналей, параллельных главной диагонали.
Я находил решения подобных задач со статическим массивом, но с динамическим, через указатели сделать затрудняюсь.
C++ матрицы
Код: Выделить всё
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
int main()
{
int x, y, z, e,i,j,;
while (true)
{
cout << "vvedite razmer matrici";
cin >> x;
cout << "vvedite maximalnoe znachenie elementa :";
cin >> z;
z=z+1;
int **matrix = new int *[x];
for ( i=0; i<x; i++)
matrix[i] = new int [x];
for ( i=0; i<x; i++)
for (j=0; j<x; j++)
{
matrix[i][j] = rand()%z;
}
Код: Выделить всё
for (i=0;i<n;i++)
{
proizv[i]=1;
for(j=0;j<n;j++)
{
if(a[i][j]!=0) proizv[i]*=a[i][j];
else proizv[i]=0;
}
if(proizv[i]>0) printf("Proizvedenie elementov stroki %d ravno %d\n",i+1,proizv[i]);
}
Код: Выделить всё
for (j=0;j<(2*n);j++) s[j]=0;
for (i=0;i<n;i++)
{
for (j=0;j+i<n;j++)
{
s[j]+=a[i][i+j];
s[n+j]+=a[i+j][i];
}
}
for (j=0;j<n;j++) printf("%d\n",s[j]);
for (j=n+1;j<(2*n);j++) printf("%d\n",s[j]);
Код: Выделить всё
#include <iostream>
using namespace std;
int main(){
int **a;
int n,m,
i,j;
cout<<"n: ";
cin>>n;
cout<<"m: ";
cin>>m;
a=new int*[n];
for(i=0;i<n;i++)
a[i]=new int[m];
//а дальше все также как со статическим массивом,т.е. ввод,
//выполнить то что вам надо по заданию и вывод.
for(i=0;i<n;i++)
for(j=0;j<m;j++){
cout<<"a["<<i<<"]["<<j<<"]: ";
cin>>a[i][j];
}
cout<<endl<<"-----------------"<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
//вот только в конце надо совободить память
for(i=0;i<n;i++)
delete []a[i];
cin.get(),cin.get();
return 0;
}

Приглашаю на свой блог о программировании: pro-prof.com