利用访问数组的指针,实现求一个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;
}
如有帮助,望采纳!谢谢!