注册 登录
编程论坛 C++教室

求指正, 编辑没有报错

楚歌声 发布于 2013-09-11 17:03, 894 次点击
#include "iostream.h"

int main()
{
    int i,j,n,sum=0;
    cout<<" "<<endl;
    cin>>n;
    int **a;
    a = new int* [n];
    a[0] = new int[n * n];
    for(i=0; i<n; i++)
    {
        a[i] = a[i-1] + n;
    }


    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            cout<<"a["<<i<<"]["<<j<<"]=";
            cin>>a[i][j];
            //cout<<'\n';
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
   
            cout<<a[i][j]<<'\t';
    }

    cout<<endl;

    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            if (i=j)
                sum+=a[i][j];
        }
    }

    cout<<"这个"<<n<<"行"<<n<<"列的矩阵的对角线元素之和为: "<<sum<<endl;
    delete[] a[0];
    delete[] a;
    return 0;
}
10 回复
#2
peach54602013-09-11 17:25
恭喜啊,编译没报错...
#3
can39811322013-09-11 17:33
想干什么呢?
#4
3037709572013-09-11 21:38
坐等问题补充。
#5
农村小伙子2013-09-11 22:21
不懂,好难,
#6
qunxingw2013-09-13 23:12
一帖哥
#7
雪狼633812013-09-14 01:02
想问什么?
#8
pauljames2013-09-14 07:21
编辑没有报错?是编译吗?这个没有错只是说明你代码没有语法错误。
#9
IT男year2013-09-18 18:14
a数组一下是一维数组,一下又是二维数组,你这是想干啥呢?你认为这样可以吗?
#10
magry2013-09-19 02:42
改了一下,不知道和你想的一样不
#include <iostream>
using namespace std;
int main()
{
    int i,j,n,sum=0;
    cout<<"请输入行列数:";
    cin>>n;
    int **a;
    a = new int* [n];
    //a[0] = new int[n * n];
    for(i=0; i<n; i++)
    {
        a[i] = new int[n];
        //a[i] = a[i-1] + n;
    }


    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++){
            cout<<"a["<<i<<"]["<<j<<"]=";
            cin>>a[i][j];
            //cout<<'\n';
        }
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
   
            cout<<a[i][j]<<'\t';
    }

    cout<<endl;

    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            if (i == j) //注意这里
                sum += a[i][j];
        }
    }

    cout<<"这个"<<n<<"行"<<n<<"列的矩阵的对角线元素之和为: "<<sum<<endl;
//    delete[] a[0];
     for(i=0; i<n; i++)
    {
        delete[] a[i];
    }
    delete[] a;
    return 0;
}
#11
magry2013-09-19 02:43
改了一下,不知道和你想的一样不
#include <iostream>
using namespace std;
int main()
{
    int i,j,n,sum=0;
    cout<<"请输入行列数:";
    cin>>n;
    int **a;
    a = new int* [n];
    //a[0] = new int[n * n];
    for(i=0; i<n; i++)
    {
        a[i] = new int[n];
        //a[i] = a[i-1] + n;
    }


    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++){
            cout<<"a["<<i<<"]["<<j<<"]=";
            cin>>a[i][j];
            //cout<<'\n';
        }
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
   
            cout<<a[i][j]<<'\t';
    }

    cout<<endl;

    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            if (i == j) //注意这里
                sum += a[i][j];
        }
    }

    cout<<"这个"<<n<<"行"<<n<<"列的矩阵的对角线元素之和为: "<<sum<<endl;
//    delete[] a[0];
     for(i=0; i<n; i++)
    {
        delete[] a[i];
    }
    delete[] a;
    return 0;
}
1