есть задача
Сформировать матрицу A=(aij)nxn, элементы которой определяются формулой:
aij = cos (i + j ) * x
Из матрицы A=(aij)nxn получить матрицу B=(bij)nxn , переставляя в каждой строке наибольший по абсолютной величине (первый, если их несколько) с элементом, стоящим на главной диагонали.
x = П / 10
Сделала её часть, с функцией, а с максимумом и заменой никак
Код:
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
const double X = 3.14 /10;
void SetValue(double *A, int i, int j, int n)
{
*(A + (i*n+j)) = cos(double(i+j))*X;
cout << *(A + (i*n+j)) << " ";
}
int main()
{
int N, i, j;
printf("Razmernost A:");
scanf("%d", &N);
double** A = new double*[N];
for (i=0;i<N;i++)
A[i] = new double[N];
for (i=0; i<N; i++)
{
for (j=0; j<N; j++)
{
SetValue(&A[0][0], i, j, N);
}
}
//vivod
printf("\nVvedennaya matrica :\n");
for (i=0; i<N; i++)
{
for (j=0;j<N;j++)
printf("%d\t",&A[i][j]);
printf("\n");
}
delete []A;
getch();
return 0;
}
но там тоже есть маленькая проблемка. При выводе массива значения не соответствуют действительности, но зато они соответствуют ей в строчке
cout << *(A + (i*n+j)) << " ";
помогите пожалуйста доделать, вам это раз плюнуть, а я уже 3ю ночь почти не сплю..