利用访问数组的指针,实现求一个3行4列浮点型数组每行的均值和方差,存放到数组s[3][2]中,s的0列存放每行的均值,是的1列存放每行的方差。

利用访问数组的指针,实现求一个3行4列浮点型数组每行的均值和方差,存放到数组s[3][2]中,s的0列存放每行的均值,是的1列存放每行的方差。

c++

你题目的解答代码如下:

#include <stdio.h>
#include <stdalign.h>

int main(void)
{
    float a[3][4], s[3][2], (*p)[4], (*p1)[2], aver, sum = 0, sum1 = 0;
    int i, j;

    printf("请输入该方阵数据:\n");
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            scanf("%f", (*(a + i) + j));
        }
    }
    p = a;

    p1 = s;

    for (i = 0; i < 3; i++)
    {
        sum = 0;
        for (j = 0; j < 4; j++)
        {
            sum += *(*(p + i) + j);
        }
        aver = sum / 4.0;
        *(*(p1 + i) + 0) = aver;
    }

    for (i = 0; i < 3; i++)
    {
        sum1 = 0;
        for (j = 0; j < 4; j++)
        {
            sum1 += (*(*(p + i) + j) - *(*(p1 + i) + 0)) * (*(*(p + i) + j) - *(*(p1 + i) + 0));
        }

        *(*(p1 + i) + 1) = sum1 / 4.0;
    }

    printf("计算后的值为:\n");
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 2; j++)
        {
            printf("%4f ", *(*(p1 + i) + j));
        }
        printf("\n");
    }
    return 0;
}

如有帮助,望采纳!谢谢!