编译内容怎么写 c++

用1-1000内的整数生成一个N*N的矩阵,显示上三角,并计算正对角线上各数之和。N为3-20之间的整数,

img

#include<stdio.h>
#include<stdlib.h>
int main()
{

    printf("请输入N:");
    int t[30][30]= {0};
    int N,i,j,k,sum=0;
    scanf("%d",&N);
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
        {
            t[i][j]=rand()%1000;
            if(i<=j)
                printf("%4d",t[i][j]);
            else
            printf("    ");
        }
        printf("\n");
    }

    for(i=0; i<N; i++)
        for(j=0; j<N; j++)
        {
            if(i==j)
                sum+=t[i][j];
        }
    printf("对角线之和为:%d",sum);
    return 0;
}

c++的也差不多

#include<iostream>
using namespace std;
int main()
{
    printf("请输入N:");
    int t[30][30]= {0};
    int N,i,j,k,sum=0;
    scanf("%d",&N);
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
        {
            t[i][j]=rand()%1000;
            if(i<=j)
                printf("%4d",t[i][j]);
            else
                printf("    ");
        }
        printf("\n");
    }

    for(i=0; i<N; i++)
        for(j=0; j<N; j++)
        {
            if(i==j)
                sum+=t[i][j];
        }
    printf("对角线之和为:%d",sum);
    return 0;
}