如何更加智能 使size=25,=36都可以输出程序?函数计算那里有什么可以改进的地方

img

怎么按照标题那样子改,使得不止可以成为输入九个数的行列转换,利用sqrt函数求出输入的数量应为多少

sum求和函数定义修改如下
void sum( double **tab)

void sum(double *a, int rowsize, int colsize)
{
    // 在colsize-1列之前的列求和放在colsize-1中
    for (int i = 0; i < rowsize; i++)
    {
        double row_sum = 0;
        for (int j = 0; j < colsize - 1; j++)
            row_sum += a[i * colsize + j];
        a[i * colsize + colsize - 1] = row_sum;
    }
    
    // 对rowsize-1前的列求和,放在rowsize-1中
    for (int j = 0; j < colsize; j++)
    {
        double col_sum = 0;
        for (int i = 0; i < rowsize - 1; i++) 
            col_sum += a[i * colsize + j];
        a[(rowsize - 1) * colsize + j] = col_sum;
    }
}

调用,sum(a);
修改为
sum(&a[0][0], 4, 4);