Заполнить массив по формуле

nachC

Мне нужно заполнить массив по формуле, но это должны быть не целые числа, так как там sin и cos. Как это сделать:?
# include <iostream>
# include <math.h>
using namespace std;
void zapol(int **A, int I, int J);
void vivod(int **A, int I, int J);
void dejstv(int **A, int I, int J);
void main()
{
    int N, M;
    cin>>N>>M;
    setlocale(0,"");
    int **a=new int*[N];
    for(int i=0;i<N;++i)
        a[i]=new int[M];
    
    zapol(a,N,M);
    cout<<endl;
    vivod(a,N,M); 
    cout<<endl;
    dejstv(a,N,M); 
    cout<<endl;
     
    
    
    for(int i=0;i<N;++i)
    delete [](a[i]);
    delete []a;
    system("pause>>void");
}
void zapol(int **A, int I, int J) // вот здесь
{
    ****** i1,j1;
    for(int i=0;i<I;++i)
        for(int j=0;j<J;++j)
        {
            i1=i/2;
            j1=j/2;
            A[i][j]=sin(i1)+9.3*cos(j1);
        }
        
}
void vivod(int **A, int I, int J)
{
    for(int i=0;i<I;++i)
    {
        for(int j=0;j<J;++j)
        {
            cout.width(3);
            cout<<A[i][j]<<" ";
        }
        cout<<endl;
    }
}
void dejstv(int **A, int I, int J)
{
   int sredgeom=1, k=0, min=A[0][0];
    for(int i=0;i<I;++i)
    
      for(int j=0;j<J;++j)
        
          if(min>A[i][j])
        {min=A[i][j];
        k=i;}
        
    
  
      for(int j=0;j<J;++j)
        sredgeom*=A[k][j];
 
      sredgeom/=I;
      cout<<" Среднее геометрическое строки с min элементом "<<sredgeom;
}
1 ответ

nachC

Так матрицу надо делать тогда ******, а не int как у тебя. Естественно, что если матрица будет типа int, то и значения у тебя будут усекаться к целочисленным.