Помогите с программированием на тему массивы в с++

01.01.2001

помогите с программированием на тему массивы в с++.
создать в файле квадратную матрицу 5*5. Считать ее из файла внутри функции main() в динамический массив. Массив передать в функцию F(), где определить наибольшее значение суммы элементов матрицы среди диагоналей, параллельных главной диагонали. Найденное значение вернуть в функцию main(), из которой вывести его на консоль.

  • #include
    #include
    using namespace std;
    void ExeFile(char*& n)
    { int j,k=0;
    for(;n[k];k++); for(k--;k>=0;--k) if(n[k]=='\\') break; for(j=0;n[++k];n[j++]=n[k]); n[j]=0;
    }
    float F(float** p,int k)
    {
    float s,m=p[0][k-1];
    int j,n;
    for(j=-k+2;j-k;j++,s>m?m=s:1) for(s=n=0;n-k;n++) if(n+j < k && n+j>=0 && j) s+=p[n+j][n];
    return m;
    }

    int main(int mn,char* nm[])
    {
    int k,j,n;
    float f,*p,**t;
    ExeFile(nm[0]); if(mn!=2) cerr << nm[0] << " matrix.txt\n\a",exit(1);
    ifstream in(nm[1]); for(k=0;in>>f;k++); in.close();
    for(j=0;++j*j < k;);
    if(j*j!=k) cerr << "error in \"" << nm[1] << "\"\n\a",exit(1);
    p=new float[k];
    t=new float*[k=j];
    for(j=0;j-k;t[j++]=&p[j*k]);
    for(in.open(nm[1]),in.seekg(j=0,ios::beg);in>>p[j++];); in.close();
    for(j=0;j-k;j++,cout << endl) for(n=0;n-k;cout << t[j][n++] << '\t');
    cout << F(t,k) << endl;
    delete [] p,t;
    return 0;
    }

Вас заинтересует