第三问这个累加公式用c语言做

img

代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int **a;
    int m,n,i,j,k;
    float *w;
    float sum ;
    printf("请输入矩阵的行数和列数:");
    scanf("%d %d",&m,&n);
    a = (int**)malloc(m*sizeof(int*));
    w = (float *)malloc(m*sizeof(float));
    printf("请输入矩阵的值:\n");
    for (i=0;i<m;i++)
    {
        a[i] = (int*)malloc(n*sizeof(int));
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    }

    for (i = 0;i< m;i++)
    {
        w[i] = 0.0;
        for (j=0;j<n;j++)
        {
            sum = 0.0;
            for(k=0;k<n;k++)
                sum += a[k][j];
            w[i] += a[i][j] /sum;
        }
        w[i] = w[i]/n;
    }

    printf("权重向量为:");
    for(i=0;i<m;i++)
        printf("%f ",w[i]);
    printf("\n");
    
    free(a);
    free(w);
    return 0;

}